无法在Qt中设置几何体
Unable to set geometry in Qt
在Qt5中的一个非常简单的程序中,setGeometry
出现错误。
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+300Q桥接窗口/"Q标签类窗口"。生成的几何图形:160x16+640+300(帧:9、38、9、9,自定义边距:0、0、0,最小大小:0x0,最大尺寸:16777215x166777215)。
我看到Qt在布局中添加了自定义小部件,但我不理解这个评论
我做错了什么?
可能因为没有使用setGeometry()
而出现此错误,您应该自己设置几何体。试试这个:
m_photo->setGeometry(200,200,200,200);
更好的方法是:标签应该和图片大小相同。为此,可以使用QPixmap
方法width()
和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();
编辑。
我理解你为什么会犯这个错误。这很简单,你的图片不加载!为什么?也很简单:可能你的图片(test.jpg
)放在exe文件附近,但Qt没有看到这个文件(因为Qt使用另一个构建目录)
解决方案:将test.jpg
放在正确的目录中或设置pixmap完整路径(例如,我做"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";
现在工作了吗?
相关文章:
- 为不同配置设置MSVC_RUNTIME_LIBRARY的正确方法是什么
- 在C++/Linux中设置单调时钟的一些技巧
- 如何在选项卡视图Qt中设置一个新项目,并保存以前的项目
- 嵌套在类中时无法设置成员数据
- 无法将结构注册为增强几何体3D点
- 需要帮助设置在C++中使用的Potrace
- 如何在自删除后将对象设置为nullptr
- 将指针设置为"nullptr"并不能防止双重删除?
- 如何在Ubuntu中使用cmake设置qt4
- ld:bind_at_load和-bitcode_bundle(Xcode设置ENABLE_bitcode=YES)不能
- 如何在boost beast http请求中设置http头
- 如何解决gcc编译器优化导致的centos双编译器设置中的分段错误
- 如何将这个C++哈希表转换为动态扩展和收缩,而不是使用硬设置的最大值
- 为什么文件名被设置为一个点,而不是在读取矢量中的文件名时
- 如何在24位SDL_Surface上设置像素的颜色
- std::设置自定义比较器
- 如何设置一个范围来提取我想要获得的信息
- 如何在C/C++中用FD_set Unix设置套接字文件描述符
- 无法在Qt中设置几何体
- Qt setGeometry:无法设置几何体