我想在QWidget中显示一张图片,但它不起作用

时间:2015-09-21 08:50:54

标签: image qwidget

我的代码是:但我无法在QWidget中找到图片。如果我想要显示图像,我该怎么办?我的代码有什么问题?

QTtest::QTtest(QWidget *parent)
: QWidget(parent)
{
QHBoxLayout * m_viewLayout = new QHBoxLayout();
this->setLayout(m_viewLayout);

QHBoxLayout * showLayout = new QHBoxLayout();
QHBoxLayout * btnLayout = new QHBoxLayout();

m_viewLayout->addLayout(showLayout);
m_viewLayout->addLayout(btnLayout);

widget1 = new QWidget();
showLayout->addWidget(widget1);


QPixmap image("C:\\Users\\zhq\\Desktop\\1.png");
QPainter painter(widget1);
painter.drawPixmap(QPoint(0,0),image);


widget2 = new QWidget();
showLayout->addWidget(widget2);


QPushButton * btn = new QPushButton("btn");
btnLayout->addWidget(btn);

showLayout->addStretch();
}

1 个答案:

答案 0 :(得分:0)

您的代码存在一些问题。 假设图像正确加载,您应该在窗口小部件的void QWidget :: paintEvent(QPaintEvent * event)中绘制图像。不要在油漆事件之外画画。此外,正如您当前所做的那样,下次小部件更新/重新映射时,图像将被覆盖。 您可以考虑使用更简单的路径并在布局中使用QLabel而不是widget1。然后,您可以调用QPixmap :: fromImage()将图像转换为像素图,并在标签上显示QLabel :: setPixmap()以显示图像。