Qwidget中的Qt :: Pixmap不会出现在MainWindow中

时间:2013-03-05 16:34:07

标签: qt qwidget qpixmap

这是Qt的另一个新手。

我需要做的是在MainWindow的中心有一个可滚动的区域,它显示图像,并允许用户在图像上绘画。

由于我无法将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没有帮助。我不知道该怎么办。

1 个答案:

答案 0 :(得分:3)

您不需要为此子类化QWidget。 QPixmap不是小部件,因此不会在任何地方显示。您需要将pixmap添加到某个小部件,这将起作用:

标题中的

QLabel* imageLabel;

在cpp:

imageLabel = new QLabel(this);
QPixmap image(480,320);
image.fill(Qt::red);
imageLabel->setPixmap(image);
setCentralWidget(imageLabel);