udało mi się uzyskać QSystemTrayIcon widoczny podobny do tego:Pokaż QWidget lub QWindow blisko QSystemTrayIcon w QT C++
stosując następujący wiersz kodu (z gniazd sygnałowych robocza):
#include "dialog.h"
#include "ui_dialog.h"
#include <QMessageBox>
#include <form.h>
Dialog::Dialog(QWidget *parent)
: QDialog(parent), ui(new Ui::Dialog)
{
ui->setupUi(this);
QIcon icon("/Users/JohnnyAppleseed/IMAGE.png");
m_ptrTrayIcon = new QSystemTrayIcon(icon);
m_ptrTrayIcon->setToolTip(tr("Bubble Message"));
// m_ptrTrayIcon->setContextMenu(m_trayIconMenu);
connect(m_ptrTrayIcon, SIGNAL(activated(QSystemTrayIcon::ActivationReason)),
this, SLOT(iconActivated(QSystemTrayIcon::ActivationReason)));
}
Dialog::~Dialog()
{
delete ui;
}
Jednak, gdy próbuję zaimplementować kod, aby pokazać QWidget/QWindow w pobliżu utworzonego przeze mnie QSystemTrayIcon, nie pojawi się on w pobliżu. Pokazuje również, i szybko znika, jak również (nawet jeśli nie chcą go w pobliżu QSystemTrayIcon) przy użyciu tego kodu:
void Dialog::iconActivated(QSystemTrayIcon::ActivationReason reason)
{
form fr;
fr.setWindowFlags(Qt::Popup);
fr.show();
}
Dla bytu jasne, chciałbym pokazać moją QWidget/QWindow tylko jak podejście VMware Fusion (lub zegar, który znajduje się na Microsoft Windows Vista lub później ...)
Mac OS X/Linux
Microsoft Windows
Czy ktoś może wskazać, co robię źle? Dzięki!
Żeby było znacznie prostsze, ściągnąć projekt: http://zipshare.net/sv
Aktualizacja # 1
Odnośnie kwestii QWidget/QWindow flicking, vahancho poradził mi, aby przesunąć form fr;
z funkcji void Dialog::iconActivated(QSystemTrayIcon::ActivationReason reason)
do nagłówek okna roboczego. I wszystko zadziałało pomyślnie dzięki vahancho. Okno pokazuje się teraz, ale nie znajduje się już blisko QSystemTrayIcon :(
Dzięki za wskazanie przyczyny zniknięcia symbolu QDialog! Udało mi się to naprawić, deklarując "fr" z pliku HEADER zamiast deklarując go wewnątrz ikonyActivated(). Ale głównym problemem jest to, że nie mogę znaleźć żadnego rozwiązania dla utrzymania QDialog w pobliżu QSystemTrayIcon ... – user3188609
Proszę spojrzeć na moją zaktualizowaną odpowiedź. – vahancho
Działa jak urok! Dzięki vahancho: D – user3188609