Russian Qt Forum

Qt => Общие вопросы => Тема начата: Мурат от Декабрь 19, 2007, 12:32



Название: Не получается переопределить minimize
Отправлено: Мурат от Декабрь 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);
}


Название: Re: Не получается переопределить minimize
Отправлено: Пантер от Декабрь 19, 2007, 12:41
Какая ОСь?
Приведи текст slotMinimizeToTray();


Название: Re: Не получается переопределить minimize
Отправлено: Kainit от Декабрь 19, 2007, 15:01
А почему в примере
http://doc.trolltech.com/4.2/desktop-systray.html (http://doc.trolltech.com/4.2/desktop-systray.html)
всё нормально?


Название: Re: Не получается переопределить minimize
Отправлено: ритт от Декабрь 19, 2007, 17:17
дурацкий пример просто...индусы писали
когда правильно пишешь, работать не должно! :)


Название: Re: Не получается переопределить minimize
Отправлено: Мурат от Декабрь 20, 2007, 15:37
Пример это не то. Мне надо чтоб при нажатии на кнопку minimize вызывался мой обработчик, и дальше это событие уже не обрабатывалось!!! В примере там просто сворачивется как и должно быть! А тут сначала выполняется мой код, а потом еще и выполняет обработчик по умолчанию!!!

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

Код:
void Window::slotMinimizeToTray()
{
hide();
tray_icon->show();
}