Qt/C++ 图像没有出现在屏幕上
Qt/C++ image does not appear on screen
这是我尝试创建的 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);
}
问题的出现是因为忽略策略,标签似乎无法扩展布局(之后或因为topFiller和bottomFiller展开):
imageLabel->setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Ignored);
尝试通过删除 setSizePolicy() 来代替正常策略,或使用 Expanding:
imageLabel->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
设置 QLabel setScaledContents 也很好,这样当您手动调整视图大小时图像将调整大小:
imageLabel->setScaledContents(true);
这是我尝试创建的 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);
}
问题的出现是因为忽略策略,标签似乎无法扩展布局(之后或因为topFiller和bottomFiller展开):
imageLabel->setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Ignored);
尝试通过删除 setSizePolicy() 来代替正常策略,或使用 Expanding:
imageLabel->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
设置 QLabel setScaledContents 也很好,这样当您手动调整视图大小时图像将调整大小:
imageLabel->setScaledContents(true);