2014-12-05 95 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(); 
相關問題