我想知道如何从我的数据创建位图并将其显示在我的小部件上。
我有 QVector 向量,它是绘制图表的一些点的向量。如何在我的小部件上重新绘制它,但使用 QBitmap?我不想简单地在小部件上绘制,我更喜欢将像素图传递给小部件,只是为了显示它。
我怎样才能做到这一点?
我的代码:
QPainter painter(pixMap);
painter.setPen(QPen(Qt::black, 2));
painter.drawPolyline(this->data.data(), this->data.size());
painter.drawLine(QPointF(5,5),QPointF(50,50));
setPixmap(*pixMap);
这是我的示例代码。为什么它不起作用?我在小部件上看不到任何东西。
我有小部件类
class Widget : public QLabel
{
public:
Widget(QVector<QPointF> * data);
~Widget();
protected:
void paintEvent(QPaintEvent * event);
private:
QVector<QPointF> data;
QPixmap *pixMap;
};
在构造函数中我有
Widget::Widget(QVector<QPointF> * data){
pixMap = new QPixmap(300,300);
pixMap->fill(Qt::red);
}
在paintEvent中
void Waveform::paintEvent(QPaintEvent *event)
{
QPainter painter(pixMap);
painter.setPen(QPen(Qt::white, 2));
painter.drawPolyline(this->data.data(), this->data.size());
painter.drawLine(QPointF(5,5),QPointF(50,50));
setPixmap(*pixMap);
}
如果我替换QPainter painter(pixMap)
为QPainter painter(this)
,我可以看到我的图表。但我想使用像素图。