Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: ecspertiza от Февраль 02, 2011, 09:16



Название: QSystemTray, не исчезает меню
Отправлено: ecspertiza от Февраль 02, 2011, 09:16
Если честно не знаю это фича или баг или я что то не доделал (что скорее всего), создал систем трей, он открывается хоршо, все отрабатывает замечательно, но если я открыл меню в тее и не выбрал ни одного пункта, при этом кликнул в любом месте на рабочем столе, по идее меню должно исчезнуть, в оно не проподает, такую же тему заметил и в примерах qt/examples/desktop/systray/ .

OS Windows 7, Qt 4.7.1 , MinGW GCC 4.5.0 . Под линуксом такая же тема пробовал на Linux Mint, gcc 4.5.0, Qt 4.7.1


Название: Re: QSystemTray, не исчезает меню
Отправлено: SABROG от Февраль 02, 2011, 11:32
Есть такое дело. Проблема в том, что система сообщений прячет меню только в том случае, если сигнал от мышки или клавиатуры приходит на родительский виджет. В примерах Qt есть такая строка:

Код:
void Window::createTrayIcon()
{
    trayIconMenu = new QMenu(this);

Таким образом, если кликнуть на основное окно программы, то меню исчезает. Лечится убиранием указателя this, в результате родителем QMenu становится окно рабочего стола.


Название: Re: QSystemTray, не исчезает меню
Отправлено: Etud от Февраль 02, 2011, 11:40
если я открыл меню в тее и не выбрал ни одного пункта, при этом кликнул в любом месте на рабочем столе, по идее меню должно исчезнуть...

У меня пропадает.
Qt 4.5.3, Windows XP, VS 2008

У меня так:
Код
C++ (Qt)
trayMenu = new QMenu(this);  
trayMenu->addAction(showAction);
 



Название: Re: QSystemTray, не исчезает меню
Отправлено: ecspertiza от Февраль 02, 2011, 11:48
SABROG, спасибо

Код:
     tryMenu = new QMenu(0);

вот так заработало вообще отлично.


Название: Re: QSystemTray, не исчезает меню
Отправлено: Sanya от Февраль 02, 2011, 14:18
Спасибо!
У самого не наблюдалось, но некоторые жаловались на подобное поведение.