1

データからビットマップを作成してウィジェットに表示する方法を知りたいです。

チャートを描画するためのいくつかのポイントのベクトルである 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)、チャートが表示されます。しかし、ピックスマップを使いたいです。

4

1 に答える 1