Как отобразить файл "* .png" в пользовательском интерфейсе в рамках QT? - PullRequest
5 голосов
/ 02 августа 2011

Я новичок в Qt Framework ...

Я хочу отобразить картинку .png в моем Form1.ui, поэтому я перетащил графическое представление из окна виджета, а затем Я поместил 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

Отлично скомпилировано, но картинка не появилась, Что я не так?

это мой qrc:

Ответы [ 3 ]

11 голосов
/ 02 августа 2011

Виджет, который вы должны использовать для показа изображений: 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 голосов
/ 02 августа 2011

Если у вас есть png в ваших ресурсах, возможно, измените фоновое изображение: tag:

ui->Pic1->setStyleSheet("background-image: url(:/test.png)");
0 голосов
/ 02 августа 2011

Вам необходимо добавить изображение в файл ресурса: http://doc.qt.io/qt-5/resources.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...