0

これがQtのもう1つの初心者です。

私がする必要があるのは、メインウィンドウの中央にスクロール可能な領域を配置することです。これにより、画像が表示され、ユーザーは画像にペイントできます。

QPixmapをスクロール可能な領域に直接追加できないため、次のようにQWidgetのサブクラスを作成しようとしました。

class Canvas: public QWidget
{
public:
    Canvas(){
    image = new QPixmap(480,320);
    image->fill(Qt::red);
    }
    QPixmap *image;
};

次に、ヘッダーファイルでCanvas*cを宣言しました。

実装では、私は次のように書いています。

  canvas = new Canvas;
  setCentralWidget(canvas);

ただし、明らかにこれはQPixmapを表示するのに役立ちません。私は何をすべきかわかりません。

4

1 に答える 1

3

このために QWidget をサブクラス化する必要はありません。QPixmap はウィジェットではないため、どこにも表示されません。ピックスマップをいくつかのウィジェットに追加する必要があります。これは機能します:

ヘッダー内:

QLabel* imageLabel;

cpp で:

imageLabel = new QLabel(this);
QPixmap image(480,320);
image.fill(Qt::red);
imageLabel->setPixmap(image);
setCentralWidget(imageLabel);
于 2013-03-05T16:52:42.717 に答える