Qt 将数据转换为 QPixmap
Posted
技术标签:
【中文标题】Qt 将数据转换为 QPixmap【英文标题】:Qt convert data to QPixmap 【发布时间】:2014-11-26 16:44:44 【问题描述】:我正在尝试将一些数据从 QVector 转换为 QBitmap。我怎样才能做到这一点? 我有一个 QPointF 的 QVector,我正在尝试将该数据转换为在 QPixmap 上重绘。
QVector<QPointF> data;
QPixmap pixMap;
编辑
我做了这样的东西。为什么它不起作用?
QPainter *painter = new QPainter(&pixMap);
for(int i = 1; i < data.last().x(); i++)
painter->setPen(QPen(Qt::black, 2));
painter->drawPolyline(this->data.data(), this->data.size());
delete painter;
setPixmap(pixMap);
【问题讨论】:
你需要在像素图上画点吗? 是的 :) 抱歉解释不准确 @Shepherd 你看过QPainter
吗?
什么是“this->data.data()
”和“this->data.size()
”。什么是“data.last.x()
”?
你已经知道什么是数据了。通常 data() 函数从 Vector 中获取所有 QPOINTF,这样我就可以在 WIDGET 上重新绘制。但是当我在 QPixMap 上做的时候,什么都没有。
【参考方案1】:
您可以使用QPainter
绘制像素图:
QPixmap pixmap(100,100); // a pixmap of size 100x100 pixels
QPainter painter(&pixmap);
// iterate over your points and draw them using the painter
QPainter
文档有大量关于如何使用 QPainter、画笔、钢笔绘制东西的示例...
【讨论】:
对不起,这不是一个好问题 - 什么不起作用?怎么没用?编译器说了什么? 请注意,在 QPainter 对象被销毁之前,不能保证 QPixmap 状态会完全更新。保证这一点的最简单方法是将 QPainter(以及调用它的绘图命令)放在一组花括号内,并在该范围之外声明 QPixmap,并且在结束之前不要尝试将 QPixmap 用于任何事情范围(即在大括号之后)以上是关于Qt 将数据转换为 QPixmap的主要内容,如果未能解决你的问题,请参考以下文章
Qt 编程指南10 QImage Mat QPixmap转换
如何在Python 3中将QImage(QPixmap)转换为PIL图像?