我收到错误setGeometry
在 Qt5 中的一个非常简单的程序中。
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QLabel* m_photo = new QLabel;
m_photo->setPixmap(QPixmap("test.jpg"));
m_photo->show();
return a.exec();
}
错误:setGeometry:无法设置几何图形 6x16+640+300
QWidgetWindow/'QLabelClassWindow'。生成的几何形状:160x16+640+300
(框架:9, 38, 9, 9,自定义边距:0, 0, 0, 0,最小尺寸:0x0,
最大尺寸:16777215x16777215)。
I see Qt 将自定义小部件添加到布局中 https://stackoverflow.com/questions/22494839/qt-adding-custom-widget-to-a-layout,但我不明白这个评论。
我究竟做错了什么?
您可能会收到此错误,因为您没有使用setGeometry()
,你应该自己设置几何图形。尝试这个:
m_photo->setGeometry(200,200,200,200);
更好的方法:标签应与图片大小相同。为此,您可以使用QPixmap
method width()
and height
QLabel* m_photo = new QLabel;
QPixmap px("G:/2/qt.jpg");
m_photo->setPixmap(px);
m_photo->setGeometry(200,200,px.width(),px.height());
m_photo->show();
Edit.
我明白你为什么会收到这个错误。很简单,你的图片加载不出来!为什么?也很简单:可能是你的照片(test.jpg
) 被放在 exe 文件附近,但 Qt 没有看到这个文件(因为 Qt 使用另一个构建目录)
解决办法:放test.jpg
在正确的目录中或设置像素图完整路径(我这样做"G:/2/test.jpg"
例如)。还可以使用此代码:检查您的图片加载是否成功。
QLabel* m_photo = new QLabel;
QPixmap px("G:/2/qt.jpg");
if(!px.isNull())
{
m_photo->setPixmap(px);
m_photo->show();
}
else
qDebug() << "Cannot find picture";
现在上班了吗?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)