2011-08-02 25 views
5

Jestem nowy na Qt ...Jak wyświetlić plik "* .png" w interfejsie użytkownika w strukturze QT?

Chcę wyświetlić .png pic na moim Form1.ui, więc przeciągać i upuszczać Graphic widok z okna widget następnie umieściłem w test.png taki sam katalog (wewnątrz folderu projektu)

i zrobiłem to w kodzie

//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 

to doskonale skompilowany pic ale nie wydaje, Co ja Zła?

to moja qrc:

Odpowiedz

11

Widżet, którego należy użyć do wyświetlania zdjęć, to QLabel. Możesz to zrobić bezpośrednio z QtCreator, ustawiając jego właściwość pixmap.

Jak powiedzieli inni, należy najpierw utworzyć plik zasobów, a następnie dodać obraz do tego pliku zasobów. Aby utworzyć plik zasobów Qt, przejdź do menu: Plik> Qt> Plik zasobów Qt.

EDIT Aby to zrobić programowo:

//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

Szanowny Halo, dziękuję za odpowiedź, czy możesz pokazać mi jak używać Qlabel i jak poprawnie ustawić pixmap? Naprawdę doceniłbym to ..., jeśli chcesz, mogę opublikować więcej mojego kodu, żebyś mógł wiedzieć, gdzie pomóc ... dla pliku zasobów Stworzyłem plik zasobów, a następnie otworzyłem karim.qrc, dodałem przedrostek "/ karim" i dodałem plik test.png i jak wszystko to zmieni to polecenie ui> Pic1-> setStyleSheet ("background-image: url (:/test.png)"); – karim

+0

karim, po prostu dodaj do formularza QLabel, następnie przejdź do jego właściwości, przewiń w dół, pod niebieskimi właściwościami, pixmap jest trzecią. Tam kliknij "..." i wybierz test.png z przedrostka/karim. –

+0

dzięki: D działało idealnie – karim

0

Trzeba dodać obraz do pliku zasobów: http://doc.qt.io/qt-5/resources.html

+0

Drogi fredg, używam Qt Creator, zrobiłem plik zasobów, karim.qrc, następnie I dodaje plik .png, ale nadal nie ma wyników. czy ta linia kodu jest poprawna? ui> Pic1-> setStyleSheet ("background-image: url (test.png)"); – karim

0

Jeśli masz PNG w swoich zasobach, może zmienić swoje background-image: tag:

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

nie wyszło, proszę zauważyć, że nic nie zrobiłem w main.cpp lub w nagłówkach. czy powinienem coś tam zrobić? dla pliku zasobów utworzyłem plik zasobów, następnie otworzyłem karim.qrc, dodałem przedrostek "/ karim" i dodałem plik test.png, i jak wszystko to zmieni to polecenie ui> Pic1-> setStyleSheet ("background-image: url (:/test.png)"); ?? – karim

+0

Czy nie musi to być: /karim/test.png? – Pete

+0

lub ewentualnie umieść alias w pliku zasobów, aby obraz nie zawierał ścieżki podrzędnej. – Pete

Powiązane problemy