Tray qt - funkcja setMessage
-
Chcę zrobić, żeby funkcja
void QSystemTrayIcon::showMessage ( const QString & title, const QString & message, MessageIcon icon = Information, int millisecondsTimeoutHint = 10000 )
była widoczna przez cały czas pracy aplikacji a nie znikała po jakims czasie millisecondsTimeoutHint = 10000. Zazwyczaj znika jak tylko się myszką rusza. Pewnie trzeba ustawić jakoś flagę. Zmiana parametru millisecondsTimeoutHint nic nie daje. Piszę aplikację pod windowsa. Miał ktoś taki problem i wie jak go rozwiazac?? -
Wszystko zależy od systemu operacyjnego lub/i od aplikacji system tray jaka jest włączona. Użytkownik może na przykład wyłączyć całkowicie tego typu powiadomienia. Nie spotkałem się z żadną flagą w Qt która by mogła nadpisać ustawienia systemowe użytkownika. W moim przypadku zmiana parametru millisecondsTimeoutHint dawała efekty i działała jak należy (winXp, Qt 4.6.x lub 4.7.x).
Piszę to dlatego, żebyś może zastanowił się nad innym sposobem komunikacji z użytkownikiem. Skoro ma być widoczny przez cały czas działania aplikacji, to dlaczego nie zrobić jakiegoś widgetu, który będzie siedział koło traya? Możesz posłużyć się np "QDesktopWidget":http://qt-project.org/doc/qt-4.8/qdesktopwidget.html, żeby znaleźć niezbędne dane do umieszczenia takiego powiadamiającego widgetu w odpowiednim miejscu nawet przy kilku monitorach.