2011-08-02 8 views
5

Soy nuevo en el marco de Qt ...Cómo mostrar un archivo "* .png" en una interfaz de usuario en el marco de QT?

Quiero mostrar una imagen PNG en mi Form1.ui, así que arrastrar y depositar una vista gráfica de la caja Reproductor continuación coloqué en prueba.png el mismo directorio (dentro de la carpeta del proyecto)

y lo hice en el código

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

Se compila perfectamente, pero no apareció la foto, ¿Qué hice mal?

este es mi QRC:

Respuesta

11

el widget que debe utilizar para mostrar imágenes es una QLabel. Puede hacerlo directamente desde QtCreator, estableciendo su propiedad pixmap.

Como otros han dicho, debe crear primero un archivo de recursos y luego añadir la imagen a ese archivo de recursos. Para crear un archivo de recursos de Qt, vaya a los menús: Archivo> Qt> Archivo de recursos Qt.

EDITAR Para hacerlo programáticamente:

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

Estimado hexa, gracias por su respuesta, ¿puede mostrarme cómo usar Qlabel y cómo configurar correctamente pixmap? i lo agradecería muchísimo ..., si quieres puedo publicar más de mi código de modo u podría ayudar a saber dónde ... para el archivo de recursos, he creado un archivo de recursos, entonces abrí karim.qrc, he añadido un prefijo "/ karim" y agregué un archivo test.png, y cómo todo esto cambiará este comando ui-> Pic1-> setStyleSheet ("background-image: url (:/test.png)"); – karim

+0

karim, simplemente agregue al formulario un QLabel, luego vaya a sus propiedades, desplácese hacia abajo, debajo de las propiedades azuladas, pixmap es el tercero. Haga clic en '...' y seleccione test.png del prefijo/karim. –

+0

gracias: D funcionó perfectamente – karim

0

Es necesario añadir la imagen a un archivo de recursos: http://doc.qt.io/qt-5/resources.html

+0

Estimado fredg, estoy usando Qt Creator, lo hice un archivo de recursos, karim.qrc, a continuación, he añadido el archivo .png, pero aún no hay resultados. ¿Esta línea de código es correcta? ui-> Pic1-> setStyleSheet ("background-image: url (test.png)"); – karim

0

Si usted tiene el png en sus recursos, tal vez cambiar la imagen de fondo: la etiqueta:

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

no funcionó, tenga en cuenta que no hice nada en main.cpp o en los encabezados. ¿Debo hacer algo allí? para el archivo de recursos, he creado un archivo de recursos, luego abrí karim.qrc, agregué un prefijo "/ karim" y agregué un archivo test.png, y cómo todo esto cambiará este comando ui-> Pic1-> setStyleSheet ("background-image: url (:/test.png)"); – karim

+0

¿No debería ser: /karim/test.png? – Pete

+0

o posiblemente ponga un alias en el archivo de recursos para que la imagen no tenga subpaso. – Pete

Cuestiones relacionadas