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.



0 Respuestas a “Bandeja del sistema con Qt4”