insertar imagen

1,460 views
Skip to first unread message

bandan

unread,
Jun 12, 2011, 2:15:11 PM6/12/11
to Qt-español
Hola quisiera saber como hago para incluir una imagen como un logo en
el QT creator.

Lisandro Damián Nicanor Pérez Meyer

unread,
Jun 12, 2011, 3:45:11 PM6/12/11
to qt-es...@googlegroups.com
On Dom 12 Jun 2011 15:15:11 bandan escribió:
> Hola quisiera saber como hago para incluir una imagen como un logo en
> el QT creator.

Disculpame, pero no termino de entenderte.

¿A que llamás poner una imagen como logo? ¿El icono de la aplicación? ¿Un
splash screen? :-/

Saludos, Lisandro.

--
#exclude <windows.h>

Lisandro Damián Nicanor Pérez Meyer
http://perezmeyer.com.ar/
http://perezmeyer.blogspot.com/

signature.asc

César Osimani

unread,
Jun 12, 2011, 5:00:08 PM6/12/11
to qt-es...@googlegroups.com
Hola, es verdad que no está clara la pregunta. Suponiendo que querés dibujar una imagen en algún QWidget te doy un ejemplo simple:

1- Hay que redefinir en tu clase derivada de QWidget el método paintEvent.
2- Dentro de ese método instanciar un objeto de la clase QPainter para dibujar. Este objeto es como si fuera el pincel. Buscar en sus métodos para dibujar líneas, rectángulos, elipses, imágenes, etc..
3- Para más información leer la documentación sobre la clase QPainter, el método QWidget::paintEvent(QPaintEvent*) y la clase QWidget.

#ifndef PRINCIPAL_H
#define PRINCIPAL_H


#include <QWidget>


namespace Ui {
    class Principal;
}

class Principal : public QWidget  {
    Q_OBJECT

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


private:
    Ui::Principal *ui;


protected:
    void paintEvent(QPaintEvent *);
};

#endif // PRINCIPAL_H




#include "principal.h"
#include "ui_principal.h"

#include <QPainter>
#include <QImage>


Principal::Principal(QWidget *parent) : QWidget(parent), ui(new Ui::Principal)  {
    ui->setupUi(this);

}


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

void Principal::paintEvent(QPaintEvent *)  {
    QPainter painter(this);


    // Ojo con la ruta en disco del archivo de imagen que se dibuja.

    // Para facilitar las cosas crear un archivo de recursos de Qt e incluir allí el archivo PNG.
    painter.drawImage(10, 10, QImage("./dibujo.png"));  
}

Saludo
César

bandan

unread,
Jun 12, 2011, 6:27:00 PM6/12/11
to Qt-español
Disculpen por no ser claro en la pregunta, pero lo que quiero hacer es
un menu de una lista de enfermedades y quiero poner una imagen en cada
enfermedad y lo que quiero saber es cual es el codigo para cargar la
imagen e incluirla en mi interfaz, solo es eso, espero que me haya
dejado entender. gracias por la ayuda.

martin ribelotta

unread,
Jun 12, 2011, 6:57:19 PM6/12/11
to qt-es...@googlegroups.com
Te recomiendo mires los ejemplos que tiene Qt usando QtQuick:

http://doc.trolltech.com/4.7/declarative-modelviews-listview.html

En especial el ejemplo "expanding delegate" que, segun entiendo, te
vendria perfecto

http://doc.trolltech.com/4.7/declarative-modelviews-listview-expandingdelegates-qml.html

Te recuerdo que estos ejemplos se ejecutan usando qmlviewer y para
distribuirlos como una aplicacion debers llevar qmlviewer con ellos o
crearte tu propio programa basado en qmlviewer e incluir el codigo
para ejecutar por defecto tu programa,

> --
> Has recibido este mensaje porque estás suscrito al grupo "Qt-español" de Grupos de Google.
> Para publicar una entrada en este grupo, envía un correo electrónico a qt-es...@googlegroups.com.
> Para anular tu suscripción a este grupo, envía un correo electrónico a qt-espanol+...@googlegroups.com
> Para tener acceso a más opciones, visita el grupo en http://groups.google.com/group/qt-espanol?hl=es.
>
>

bandan

unread,
Jun 14, 2011, 6:32:32 AM6/14/11
to Qt-español
Me pueden dar detalles acerca de qml, qmlviewer que tipo son, como los
uso agradecere sus respuestas.

martin ribelotta

unread,
Jun 14, 2011, 1:24:09 PM6/14/11
to qt-es...@googlegroups.com
El día 14 de junio de 2011 07:32, bandan <mba...@gmail.com> escribió:
> Me pueden dar detalles acerca de qml, qmlviewer que tipo son, como los
> uso agradecere sus respuestas.
>
QML es un lenguaje interpretado que se apoya sobre un engine de qt
llamado QtQuick.

Según trolltech es la nueva forma de hacer interfaces gráficas (la
anterior usando c++ se seguirá soportando, de hecho QtQuick se basa en
ella)

Básicamente sirve para describir interfaces gráficas y lógica simple a
través de un subset de javascript.

Para saber mas, te recomiendo leas:

http://doc.qt.nokia.com/4.7/qtquick.html

Para poder ejecutar un archivo QML debemos tener creado un
QDeclarativeView y cargarlo, luego el engine QML se encargara del
resto.

QDeclarativeView *view = new QDeclarativeView;
view->setSource(QUrl::fromLocalFile("myqmlfile.qml"));
view->show();

Una buena guia de como integrar esto con Qt C++ es:

http://doc.qt.nokia.com/4.7/qtbinding.html

Aunque lo ideal es que se haga todo usando QtQuick y JavaScript.

Como nota, señalar que cuando se requiere performance, lo mejor es
escribir una clase en C++ y hacerla visible a QML usando lo explicado
en el link anterior.

Saludos y cualquier duda no dudes en preguntar.

bandan

unread,
Jun 14, 2011, 6:45:34 PM6/14/11
to Qt-español
Gracias César Osimani me funciono el cogido que pusiste, en esta parte
del .cpp yo puse asi:

void MainWindow::paintEvent(QPaintEvent *)
{
QRectF target(0,0, 600, 404); // Coordenadas de donde kieres imagen
x,y,ancho,alto
QImage image("figura.jpg"); // Ubicacion de la imagen
QPainter painter(this);
painter.drawImage(target, image);
painter.restore();
}

y mi pregunta vendria si quisiera ingresar el nombre de la imagen a
esta funcion, es decir yo quiero insertar una imagen, luego otra, y
asi todas las veces que sean necesarias y quiero saber como llamo a
esta función cada vez que yo quiera,

tambien quisiera saber cual es el codigo para el quitar la imagen,
porque antes de generar otra supongo que tengo que eliminar la
anterior. gracias por la respuesta.
Reply all
Reply to author
Forward
0 new messages