2011-08-02 19 views
5

我是新來的Qt框架...如何在QT框架的用戶界面上顯示「* .png」文件?

我想在我的Form1.ui顯示爲.png PIC, 所以我拖放從部件箱的圖形視圖,然後 我放在test.png在同一個目錄(裏面的項目文件夾)

和我這樣做的代碼

//Form1.cpp 
#include "form1.h" 
#include "ui_form1.h" 

Form1::Form1(QWidget *parent) : 
    QWidget(parent), 
    ui(new Ui::Form1) 
{ 
    ui->setupUi(this); 
    ui->Pic1->setStyleSheet("background-image: url(test.png)"); 

} 

Form1::~Form1() 
{ 
    delete ui; 
} 



//Form1.h 
#ifndef FORM1_H 
#define FORM1_H 

#include <QWidget> 

namespace Ui { 
    class Form1; 
} 

class Form1 : public QWidget 
{ 
    Q_OBJECT 

public: 
    explicit Form1(QWidget *parent = 0); 
    ~Form1(); 

private: 
    Ui::Form1 *ui; 
}; 

#endif // FORM1_H 

它完美地編譯但PIC沒有出現, 我是怎麼錯了?

這是我的QRC:

回答

11

您應該用來顯示圖片的小工具是QLabel。你可以直接從QtCreator中設置它的pixmap屬性。

正如其他人所說,您應該先創建一個資源文件,然後將該映像添加到該資源文件。要創建Qt資源文件,請轉至菜單:文件> Qt> Qt資源文件。

編輯以編程方式做到這一點:

//names starting with : means that they are on a resource file, 
//otherwise in the filesystem 
QPixmap * mypix = new QPixmap(":/karim/test.png"); 
ui->your_label->setPixmap(mypix); 
delete mypix; 
+0

親愛的hexa,謝謝你的回覆,你能告訴我如何使用Qlabel以及如何正確設置pixmap嗎?我真的很感激它,如果你想我可以發佈我的代碼更多,所以你可以知道在哪裏可以幫助... 資源文件我創建了一個資源文件,然後我打開karim.qrc,我添加了前綴「/ karim」,我添加了一個test.png文件,以及所有這些將如何改變這個命令ui-> Pic1-> setStyleSheet(「background-image:url(:/ test.png)」); ?? – karim

+0

karim,只需將形式添加到QLabel,然後轉到其屬性,向下滾動,在藍色屬性下,pixmap是第三個。點擊'...'並從/ karim前綴中選擇test.png。 –

+0

感謝:D它工作完美 – karim

0

您需要將圖像添加到一個資源文件:http://doc.qt.io/qt-5/resources.html

+0

親愛fredg,現在用Qt Creator的,我做了一個資源文件,karim.qrc,然後我說.png文件,但依然沒有結果。這行代碼是否正確? ui-> Pic1-> setStyleSheet(「background-image:url(test.png)」); – karim

0

如果你在你的資源,PNG,可能改變你的背景圖像:標籤:

ui->Pic1->setStyleSheet("background-image: url(:/test.png)"); 
+0

它沒有工作,請注意,我沒有在main.cpp或標題中做任何事情。我應該在那裏做點什麼?資源文件我創建了一個資源文件,然後我打開karim.qrc,我添加了一個前綴「/ karim」,我添加了一個test.png文件,以及所有這些將如何改變這個命令ui-> Pic1-> setStyleSheet(「background-image:url(:/ test.png)」); ?? – karim

+0

難道不需要:/karim/test.png? – Pete

+0

或可能在資源文件中放入別名,以便圖像沒有子路徑。 – Pete

相關問題