Название: QSystemTrayIcon, бага или фича? Отправлено: toshcka от Январь 02, 2010, 19:25 Баловался с phonon и писал плеер, создал иконку в трее и возможность ее скрыть посредством чекбокса. В main.cpp установил QApplication::setQuitOnLastWindowClosed(false).
Но заметил проблему, при закрытии главного окна в момент, когда иконка скрыта, приложение не завершается, т.е. окно закрывается, но из памяти приложение не выгружается. (ну и музыка играет :) ) Решил проблему, обрабатывая QCloseEvent. Код: MainwWindow::closeEvent(QCloseEvent * event) так бага это или фича? qt 4.5.2 Linux ps. прошу прощения, если не туда запостил тему Название: Re: QSystemTrayIcon, бага или фича? Отправлено: uriel от Январь 02, 2010, 21:54 Если я всё правильно понял, то фича. Вы же ему сами сказали не выходить при закрытии окна, так с чего он должен это делать? Иконка тут в принципе вообще не при чём. :)
Название: Re: QSystemTrayIcon, бага или фича? Отправлено: toshcka от Январь 02, 2010, 22:40 Если я всё правильно понял, то фича. Вы же ему сами сказали не выходить при закрытии окна, так с чего он должен это делать? Иконка тут в принципе вообще не при чём. :) это для того, чтобы приложение в трэй сворачиватья тоже склоняюсь к тому, что это фича, просто меня смутило то, что тролли в examples допустили такую ошибку, не знаю, может в 4.6 профиксили, не ставил еще :) Название: Re: QSystemTrayIcon, бага или фича? Отправлено: toshcka от Январь 02, 2010, 22:55 http://qt.nokia.com/doc/4.6/desktop-systray-window-cpp.html (http://qt.nokia.com/doc/4.6/desktop-systray-window-cpp.html)
Код: void Window::closeEvent(QCloseEvent *event) обрабатывается только видимое состояние иконки, а когда она не видима, то окно приложения закрывается, но приложение остается в памяти Название: Re: QSystemTrayIcon, бага или фича? Отправлено: uriel от Январь 02, 2010, 23:06 Ну вообще да, в таком исполнении это уже больше похоже на баг. :)
Думаю, что там просто вызов setQuitOnLastWindowClosed явно лишний. Название: Re: QSystemTrayIcon, бага или фича? Отправлено: toshcka от Январь 02, 2010, 23:17 Думаю, что там просто вызов setQuitOnLastWindowClosed явно лишний. в том-то и дело, специально проверил для надежности :)Название: Re: QSystemTrayIcon, бага или фича? Отправлено: lit-uriy от Январь 03, 2010, 02:18 Цитировать В main.cpp установил QApplication::setQuitOnLastWindowClosed(false). проблемы НЕТ, ты сам сказал не завершать приложение при закрытии окна.Но заметил проблему, при закрытии главного окна в момент, когда иконка скрыта, приложение не завершается, т.е. окно закрывается, но из памяти приложение не выгружается Название: Re: QSystemTrayIcon, бага или фича? Отправлено: toshcka от Январь 03, 2010, 08:39 Цитировать В main.cpp установил QApplication::setQuitOnLastWindowClosed(false). проблемы НЕТ, ты сам сказал не завершать приложение при закрытии окна.Но заметил проблему, при закрытии главного окна в момент, когда иконка скрыта, приложение не завершается, т.е. окно закрывается, но из памяти приложение не выгружается Название: Re: QSystemTrayIcon, бага или фича? Отправлено: Авварон от Январь 07, 2010, 03:08 90% приложений макоси не завершают свою работу при закрытии всех окон. Так что это совсем не баг
Название: Re: QSystemTrayIcon, бага или фича? Отправлено: toshcka от Январь 08, 2010, 17:20 90% приложений макоси не завершают свою работу при закрытии всех окон. Так что это совсем не баг а мир одной макосью живет?что касается примера, то думаю, что это именно баг Название: Re: QSystemTrayIcon, бага или фича? Отправлено: aljeshishe от Январь 14, 2010, 18:24 90% приложений макоси не завершают свою работу при закрытии всех окон. Так что это совсем не баг Интересно, что они делают после закрытия окон ? Ждут перезагрузки ? ;)toshcka В зависимости от чекбокса включающего или выключающего иконку делаешь setQuitOnLastWindowClosed(false) и выключаешь иконку или setQuitOnLastWindowClosed(true) и выключаешь иконку ТОгда приложение завершится если нет иконки Название: Re: QSystemTrayIcon, бага или фича? Отправлено: Авварон от Январь 14, 2010, 20:06 Иконка рабочего приложения висит в dock'е. По клику на ней снова открывается окно (дефолное). Это если приложение закрыто. Если захайдено, то окно восстанавливается
Название: Re: QSystemTrayIcon, бага или фича? Отправлено: Marat(Qt) от Январь 14, 2010, 21:09 Иконка рабочего приложения висит в dock'е. По клику на ней снова открывается окно (дефолное). Это если приложение закрыто. Если захайдено, то окно восстанавливается Между прочим, вполне неплохо бы такое реализовать в других ОС, своими руками. При вызове бинарника проверить жива ли программа, показать ее окно и выйти, если не жива - работать в обычном режиме. Есть кроссплатформенный FIFO?Название: Re: QSystemTrayIcon, бага или фича? Отправлено: Dendy от Январь 14, 2010, 21:14 Для Qt есть класс QtSingleApplication, делающий в точности как вы описали.
Название: Re: QSystemTrayIcon, бага или фича? Отправлено: Marat(Qt) от Январь 14, 2010, 21:21 Для Qt есть класс QtSingleApplication, делающий в точности как вы описали. Здорово, только стоило пометить что это solution, хотя кто ищет тот найдет |