26
Jun
08

Bandeja del sistema con Qt4

La bandeja del sistema es útil para tener una aplicación ejecutándose en segundo plano por así decirlo, es útil para una aplicación que se encarga de verificar nuestro correo electrónico, se queda minimizado en la bandeja del sistema y cuando recibimos un correo nos notificará de este correo, como por ejemplo KMail, o también muy útil para aplicaciones que no queremos que nos estén estorbando en la barra de tareas, como por ejemplo Amarok.

Esta aplicación que se desarrollo utilizando Qt4 puede compilarse para GNU/Linux como para Windows y el resultado es este:

Código principal

#include <QSystemTrayIcon>

.

QSystemTrayIcon *systemtray;

.

Aquí construimos nuestro nuevo objeto, el primer parámetro es el icono que queremos ponerle, si estamos en Linux lo recomendable es uno de 22×22, si es para Windows el de 16×16. el preprocesador de C++ nos puede servir para identificar si se esta compilando para Linux o para Windows, en el código completo que se entrega se puede ver eso, en este caso es para Linux. El segundo parámentro es el “widget papa” asi como le llamo yo.

QSystemTrayIcon *systemtraysystemtray = new QSystemTrayIcon(QPixmap(QDir::toNativeSeparators(QApplication::applicationDirPath()+”/emacs.png” )), this);

Aquí creamos una nueva acción, esta acción la utilizaremos para incluirla en el menú, este menú es el que sale cuando hacemos click derecho en el icono. El primer parámetro es el icono que queremos ponerle, el segundo el texto que se va a mostrar y el tercero el “widget papa”.

newAct = new QAction(QIcon(QDir::toNativeSeparators(QApplication::applicationDirPath()+”/filenew.png”)), tr(“Mostrar texto”), this);

Para establecer el ayuda rapidita que se muestra al poner el puntero del ratón encima del icono lo hacemos asi:

systemtray->setToolTip ( “tooltip del icono” );

Para crear el menú y asignarle la acción recién creada lo hacemos así:

QMenu *sysmenu; = new QMenu(this);
sysmenu->addAction(newAct);

y por último agregamos el menú a nuestro icono y lo mostramos

systemtray->setContextMenu(sysmenu);
systemtray->show();

Se puede hacer que despliegue mensajes, podemos controlar si se hace click en ese globo de mensajes, se puede controlar cuando se hace click izquierdo, derecho, central y doble click, solamente es de ver la documentación de Qt4, en este caso se pueden descargar qt4_systemtray.tar.gz como ejemplo para que puedan trastearlo, trasteando código se aprende mas rápido.

Anuncios

2 Responses to “Bandeja del sistema con Qt4”


  1. abril 19, 2013 en 9:16 pm

    This design is spectacular! You certainly know
    how to keep a reader amused. Between your wit and your
    videos, I was almost moved to start my own blog (well,
    almost…HaHa!) Great job. I really enjoyed what you had to say, and more than that, how you presented it.
    Too cool!


Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s


CGSOL 2008

Publicidad CGSOL 2008

A %d blogueros les gusta esto: