下面是MainWindow构造函数的代码,我试图在屏幕上显示一个图像(000.jpg)。有什么不对的?是否有其他方法在屏幕上显示文件中的图像?PS:图像文件位于.cpp项目文件所在的同一个目录中。
MainWindow::MainWindow()
{
QWidget *widget = new QWidget;
setCentralWidget(widget);
QWidget *topFiller = new QWidget;
topFiller->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
QWidget *bottomFiller = new QWidget;
bottomFiller->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
QVBoxLayout *layout = new QVBoxLayout;
layout->setMargin(5);
layout->addWidget(topFiller);
QImage myImg("000.jpg");
myImageFile = myImg;
imageLabel = new QLabel();
imageLabel->setBackgroundRole(QPalette::Base);
imageLabel->setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Ignored);
imageLabel->setScaledContents(true);
imageLabel->setPixmap(QPixmap::fromImage(myImageFile));
layout->addWidget(imageLabel);
layout->addWidget(bottomFiller);
widget->setLayout(layout);
createActions();
createMenus();
setWindowTitle(tr("Image App"));
setMinimumSize(160, 160);
resize(480, 320);
}发布于 2018-01-17 20:49:50
这个问题是由于忽略策略造成的,标签似乎无法扩展布局(在topFiller和bottomFiller展开之后):
imageLabel->setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Ignored);通过移除setSizePolicy()或使用展开来尝试正常策略
imageLabel->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);另外,设置QLabel setScaledContents以使图像在手动调整视图大小时调整大小也是很好的:
imageLabel->setScaledContents(true);https://stackoverflow.com/questions/48308777
复制相似问题