Russian Qt Forum
Сентябрь 30, 2024, 14:39 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Сворачивание окна в трей  (Прочитано 10667 раз)
ecspertiza
Супер
******
Offline Offline

Сообщений: 1053


С уважением, мастер конфетного цеха!


Просмотр профиля
« : Август 18, 2011, 11:44 »

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

Зачем тогда вообще кнопка свернуть? Может она и не нужна?
Записан
ecspertiza
Супер
******
Offline Offline

Сообщений: 1053


С уважением, мастер конфетного цеха!


Просмотр профиля
« Ответ #2 : Август 18, 2011, 12:27 »

я тоже так думал, но вроде как требования такие, да и закрытие не всегда в трей сворачивает программу, можно в настройках задать что бы закрывало
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4744



Просмотр профиля WWW
« Ответ #3 : Август 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);
}

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

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #4 : Август 18, 2011, 19:46 »

это плохой дизайн, пользователь не ждёт, что при сворачивании окна оно спрячется в трей.
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #5 : Август 18, 2011, 20:16 »

Alex Custov, почему? Если это опционально, то вполне даже ничего. Видел такое не раз.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
ecspertiza
Супер
******
Offline Offline

Сообщений: 1053


С уважением, мастер конфетного цеха!


Просмотр профиля
« Ответ #6 : Август 19, 2011, 11:22 »

kambala, спасибо за код, я бы до таймера не дошел Улыбающийся
Записан
Etud
Гость
« Ответ #7 : Август 19, 2011, 20:01 »

... закрытие не всегда в трей сворачивает программу, можно в настройках задать что бы закрывало

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

я бы до таймера не дошел Улыбающийся

я бы тоже  Смеющийся
Записан
Etud
Гость
« Ответ #8 : Август 19, 2011, 20:04 »

это плохой дизайн, пользователь не ждёт, что при сворачивании окна оно спрячется в трей.

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

Я делал с галочкой по выбору:
1) свернуть в трей при закрытии
2) или нет
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.112 секунд. Запросов: 22.