データからビットマップを作成してウィジェットに表示する方法を知りたいです。
チャートを描画するためのいくつかのポイントのベクトルである 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);
}
そしてペイントイベントで
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)
、チャートが表示されます。しかし、ピックスマップを使いたいです。