2014-12-05 58 views
0

上周早些时候,我创建了一个Python窗口,将主窗口的大小调整为背景图像的尺寸。我想在QT中做同样的事情。我设法弄清楚通过它的构造函数来调整主窗口大小的语法。如何将主窗口调整为图像资源的尺寸

this->setFixedSize(QSize(600, 600)); 

我很好奇,我怎么可能现在设置宽度和高度参数,在资源文件中的图像的参数相同。我想是这样的:

QGraphicsPixmapItem image(QPixmap("url(:/images/background.png);")); 
int x = image.width 
int y = image.length 
this->setFixedSize(QSize(x, y)); 

编辑:

综上所述,我想在主窗口调整到这样的窗口周围的背景图像包装图像文件的尺寸相同。根据this post我必须解析图片标题才能读取尺寸......听起来太复杂了。有第三方图书馆吗?

+0

你试过调整大小()吗? – Ilya 2014-12-05 14:15:57

+0

不,我没有。我想将主窗口的大小调整为图像文件的相同尺寸,使窗口环绕背景图像。根据[这篇文章](http://stackoverflow.com/questions/5354459/c-how-to-get-the-image-size-of-a-png-file-in-directory)我必须解析图像标题来读取尺寸......听起来太复杂了。有第三方图书馆吗? – 2014-12-05 14:17:47

回答

1

而不是使用QGraphicsPixmapItem使用QImage,让您的图像的大小。

QImage image(":/images/background.png"); 
if(!image.isNull()) 
    setFixedSize(image.size()); 
else 
    //loading the image failed, show some error message or something 
+0

谢谢,我会试试这个。我必须导入哪个头才能使用这个库'QImage'? – 2014-12-05 14:20:53

+0

@ the_prole'#include '。在我答复的“QImage”文档中也提到了它。 – thuga 2014-12-05 14:21:32

+0

为什么我的'main.cpp'中的标题看起来与QT文档中的标题不同,例如'#include“ui_mainwindow.h”''''#include '?无论如何,'QImage'不被识别... – 2014-12-05 14:35:18

0

设置为新后,您是否尝试调整大小?

this->setFixedSize(QSize(x, y)); 
this->adjustSize(); 
相关问题