Image 我想在QWidget中显示一张图片,但它没有';行不通

Image 我想在QWidget中显示一张图片,但它没有';行不通,image,qwidget,Image,Qwidget,我的代码是:但我在QWidget中找不到图像。如果要显示图像,我可以做什么?我的代码怎么了 QTtest::QTtest(QWidget *parent) : QWidget(parent) { QHBoxLayout * m_viewLayout = new QHBoxLayout(); this->setLayout(m_viewLayout); QHBoxLayout * showLayout = new QHBoxLayout(); QHBoxLayout * btnLayout

我的代码是:但我在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();
}

你的代码有几处错误。 假设图像加载正确,您应该在小部件的void QWidget::paintEvent(QPaintEvent*event)中绘制图像。请勿在绘制事件外部绘制。此外,当您当前正在执行此操作时,下次小部件更新/重新打印自身时,图像将被覆盖。
您可能会考虑走一条更简单的路线,在布局中使用QLabor而不是WIDGET1。然后可以调用QPixmap::fromImage()将图像转换为pixmap,并在标签上调用QLabel::setPixmap()以显示图像。

1。即使我在paintEvent中绘制图像,它也不起作用。2.如果我在QLabel中通过setPixmap显示图像,那么还有另一个问题。当QDialog调整大小时,我发现QLabel将保持相同的大小,当QDialog调整大小时,它不会调整大小。请尝试QLabel方法。是的,我试过QLabel,它确实有效。但是,我发现showLayout->addStretch()有问题。如果我添加showLayout->addStretch(),我发现图像是不可见的;但是,如果我不添加图像,它是可见的。那么您的布局可能会有问题。Qt布局需要一些时间来掌握。仔细阅读。没有新的代码,很难说。。。你可以看一看,然后。如果答案解决了您发布的问题,请接受。对于一个新问题,在你第一次尝试自己解决它之后发布一个新问题。