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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Не получается переопределить minimize  (Прочитано 4246 раз)
Мурат
Гость
« : Декабрь 19, 2007, 12:32 »

Собственно вот код. Но почему то не смотря на то что после сворачивания в tray возвращается true, приложение появляется на панели задач, хотя в функции slotMinimizeToTray() происходит вызов hide(). Как можно избежать обработки данного сообщения после данной функции?

Код:
bool Window::eventFilter(QObject *obj, QEvent *event)
{
if(event->type() == QEvent::WindowStateChange)
{
QWindowStateChangeEvent * ce = static_cast<QWindowStateChangeEvent*>(event);
if ((windowState() & Qt::WindowMinimized) && !(ce->oldState() & Qt::WindowMinimized))
{
slotMinimizeToTray();
return true;
}
else
return false;
}
else return QMainWindow::eventFilter(obj, event);
}
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


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


Просмотр профиля WWW
« Ответ #1 : Декабрь 19, 2007, 12:41 »

Какая ОСь?
Приведи текст slotMinimizeToTray();
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Kainit
Гость
« Ответ #2 : Декабрь 19, 2007, 15:01 »

А почему в примере
http://doc.trolltech.com/4.2/desktop-systray.html
всё нормально?
Записан
ритт
Гость
« Ответ #3 : Декабрь 19, 2007, 17:17 »

дурацкий пример просто...индусы писали
когда правильно пишешь, работать не должно! Улыбающийся
Записан
Мурат
Гость
« Ответ #4 : Декабрь 20, 2007, 15:37 »

Пример это не то. Мне надо чтоб при нажатии на кнопку minimize вызывался мой обработчик, и дальше это событие уже не обрабатывалось!!! В примере там просто сворачивется как и должно быть! А тут сначала выполняется мой код, а потом еще и выполняет обработчик по умолчанию!!!

Не думаю что дело в функции slotMinimizeToTray, но все равно вот ее код!

Код:
void Window::slotMinimizeToTray()
{
hide();
tray_icon->show();
}
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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