0

这是 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。我不知道该怎么办。

4

1 回答 1

3

You don't need to subclass QWidget for this. QPixmap is not a widget, so it is not shown anywhere. You need to add your pixmap to some widget, this will work:

in header:

QLabel* imageLabel;

in cpp:

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