Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: ecspertiza от Август 18, 2011, 11:44



Название: Сворачивание окна в трей
Отправлено: ecspertiza от Август 18, 2011, 11:44
Есть необходимость при нажатии на "крестик" в окне сворачивать программу в трей. Тут сложностей особых не возникает, просто переопределяем событие closeEvent() и там пишем hide(). Но так же нужно что бы при нажатии на "свернуть" прога попадала не на панель задач, а так же в трей, переопределяю hideEvent() или просто event(), пробую там написать тоже что и в closeEvent() ,но это как то бессмысленно, прога же в рекурсию войдет. Вообщем вопрос как скрыть софтину в трей, при нажатии на "свернуть".


Название: Re: Сворачивание окна в трей
Отправлено: alexman от Август 18, 2011, 11:52
Зачем тогда вообще кнопка свернуть? Может она и не нужна?


Название: Re: Сворачивание окна в трей
Отправлено: ecspertiza от Август 18, 2011, 12:27
я тоже так думал, но вроде как требования такие, да и закрытие не всегда в трей сворачивает программу, можно в настройках задать что бы закрывало


Название: Re: Сворачивание окна в трей
Отправлено: kambala от Август 18, 2011, 13:11
Код
C++ (Qt)
void MainWindow::changeEvent(QEvent *e)
{
if (e->type() == QEvent::WindowStateChange && isMinimized())
{
QTimer::singleShot(0, this, SLOT(hide()));
e->ignore();
}
else
QMainWindow::changeEvent(e);
}

а вообще надо поиском пользоваться


Название: Re: Сворачивание окна в трей
Отправлено: Alex Custov от Август 18, 2011, 19:46
это плохой дизайн, пользователь не ждёт, что при сворачивании окна оно спрячется в трей.


Название: Re: Сворачивание окна в трей
Отправлено: Пантер от Август 18, 2011, 20:16
Alex Custov, почему? Если это опционально, то вполне даже ничего. Видел такое не раз.


Название: Re: Сворачивание окна в трей
Отправлено: ecspertiza от Август 19, 2011, 11:22
kambala, спасибо за код, я бы до таймера не дошел :)


Название: Re: Сворачивание окна в трей
Отправлено: Etud от Август 19, 2011, 20:01
... закрытие не всегда в трей сворачивает программу, можно в настройках задать что бы закрывало

ага, надо уметь готовить

я бы до таймера не дошел :)

я бы тоже  ;D


Название: Re: Сворачивание окна в трей
Отправлено: Etud от Август 19, 2011, 20:04
это плохой дизайн, пользователь не ждёт, что при сворачивании окна оно спрячется в трей.

нормально почти.

Я делал с галочкой по выбору:
1) свернуть в трей при закрытии
2) или нет