Insertar imagen como fondo de la ventana

2,320 views
Skip to first unread message

Ivan Nomdedeu

unread,
Jun 12, 2013, 8:19:02 AM6/12/13
to qt-es...@googlegroups.com
Hola gente, soy nuevo en el foro y en QT.

Estoy haciendo un programa para escritorio y quisiera agregar una imagen como fondo de una ventana.
Estuve probando de diversas formas, inserte un label con la imagen en el mapbit y la puse de fondo, pero no pude hacer que botones funcionaran sobre la imagen.  Considero que debe haber una forma mas fácil, de ahí mi pregunta.

En principio seria para la mainWindows, pero de poderse me gustaría hacerlo en las otras ventanas.

muchas gracias.

Ivan Nomdedeu  

martin ribelotta

unread,
Jun 12, 2013, 9:11:10 AM6/12/13
to qt-es...@googlegroups.com
Lo mas facil es crear un derivado de QWidget y reimplementar el metodo
paint. Eso nunca falla y te da todo el control sobre como queres que
se dibuje. Incluso poses hacer que algunas partes del widget sean
transparentes.
> --
> Has recibido este mensaje porque estás suscrito al grupo "Qt-español" de
> Grupos de Google.
> Para anular la suscripción a este grupo y dejar de recibir sus correos
> electrónicos, envía un correo electrónico a
> qt-espanol+...@googlegroups.com.
> Para publicar una entrada en este grupo, envía un correo electrónico a
> qt-es...@googlegroups.com.
> Visita este grupo en http://groups.google.com/group/qt-espanol?hl=es.
> Para obtener más opciones, visita https://groups.google.com/groups/opt_out.
>
>

Jesus Fernandez

unread,
Jun 12, 2013, 9:15:08 AM6/12/13
to qt-es...@googlegroups.com
Otra opción más sencilla es asignarle al widget que quieras (o ventana) la propiedad autoFillBackground a true y asignarle un CSS con la imágen que quieras poner.

También serviría la opción que comenta Martin, pero quizá de primeras es un poco más de lío.

Ivan Nomdedeu

unread,
Jun 12, 2013, 9:20:22 AM6/12/13
to qt-es...@googlegroups.com
Martin, Jesus gracias por responder rápido. En mi caso el main ya lo tengo diseñado y funcionando, quisiera en lo posible evitarme tener que re-hacerla ya que esta muy cargada!!!

pregunta: como se asigna un css? mi nivel es muy básico ( mi experiencia es con c y assembler en uC!!!)

gracias
Ivan Nomdedeu  

César Osimani

unread,
Jun 12, 2013, 9:43:08 AM6/12/13
to qt-es...@googlegroups.com
Hola Iván, te adjunto un proyecto que te puede servir. Posiblemente tengas que modificar el directorio donde se encuentra la imagen.

Saludos
César


--
ImagenEnWidget.rar

Jesus Fernandez

unread,
Jun 12, 2013, 9:50:26 AM6/12/13
to qt-es...@googlegroups.com
Si has diseñado la ventana con el QtDesigner, desde él puedes hacerlo facilmente.

Sino, tendrás que usar la función QWidget::setStyleSheet.

Aquí verás como hacerlo: http://qt-project.org/doc/qt-4.8/stylesheet.html

Un saludo.

martin ribelotta

unread,
Jun 12, 2013, 10:23:07 AM6/12/13
to qt-es...@googlegroups.com
Normalmente, hacer que funcione el paint es bastante simple:

class MyClass: public QWidget {
...
protected:
...
virtual void paint(QPaintEvent *e) {
Q_UNUSED(e);
QPainter p(this);
p.drawImage(....);
}
...
};

int main(...) {
...
MyWidget w;
w.show();

Ivan Nomdedeu

unread,
Jun 17, 2013, 4:09:28 PM6/17/13
to qt-es...@googlegroups.com
Gente, gracias por el aporte, el finde estuve trabajando y lo logre hacer funcionar.

muy util su aporte!!!

ivan
Reply all
Reply to author
Forward
0 new messages