2010-04-25 12 views
1

我在編譯時在磁盤上有一個png文件。我想將它包含到編譯的可執行文件中。 如何在Qt中定義這樣一個圖標?如何用編譯時間預定義圖像在QT中定義圖標?

+0

您的意思是沒有從資源中加載圖標數據? – 2010-04-25 17:52:20

+0

我想將資源包含到可執行文件中,以免它在運行時加載。那可能嗎? – Regof 2010-04-25 18:30:55

回答

9

你基本上需要使用Qt資源系統。
結帳編入資源here

比方說這個這個資源文件

<!DOCTYPE RCC><RCC version="1.0"> 
<qresource> 
    <file>images/copy.png</file> 
    <file>images/cut.png</file> 
    <file>images/paste.png</file> 
</qresource> 
</RCC> 

在你的源,現在您可以通過從資源引用圖像創建QIcons

QIcon(":/images/cut.png") 

不要忘記引用的資源文件在你的.pro

RESOURCES = application.qrc 

This example在資源文件中使用圖標

+0

完美,然後 - 鋤頭是否使用該編譯資源定義圖標? – Regof 2010-04-25 19:08:18

6

至於Qt的資源系統的替代方案,你可以使用(你喜歡的圖像轉換工具),以.png文件轉換爲.xpm格式,然後將這些行添加到您的.cpp文件:

#include "my_converted_image.xpm" 
[...] 
QPixmap myPixmap((const char **) my_converted_image_xpm); 

...其中my_converted_image_xpm是在.xpm文件頂部附近聲明的字符數組的名稱。這工作,因爲.xpm圖像格式實際上只是C源代碼聲明一個字符數組是位圖,它的QPixmap知道如何解析,如:

/* XPM */ 
static const char * const my_converted_image_xpm[] = { 
"16 16 65 1", 
"  c None", 
".  C#0F0F04", 
[...] 
"    "}; 
0

如果您使用Qt的創造者,有一個資源編輯器可供您使用。只需創建一個新的資源文件,添加一個前綴並添加文件。 Qt-Creator會自動將其添加到項目文件中。之後,從您的資源中選擇您的圖片,然後選擇您需要的圖片