Название: Как отловить нажатие [x]? Отправлено: ZIkos от Ноябрь 28, 2007, 15:38 Скажите пожалуйста как отловить нажатие
QDockWidget *pDistribPanel = m_pShell->CreatePanel("uid1", tr("Имя панели")); Мне нужно перехвать событие закрытия окна, для того чтобы убить этот QDocWidget. Название: Re: Как отловить нажатие [x]? Отправлено: Lion от Ноябрь 28, 2007, 15:48 QCloseEvent + eventFilter тебе в руки.
Название: Re: Как отловить нажатие [x]? Отправлено: Dodge от Ноябрь 28, 2007, 16:00 QCloseEvent + eventFilter тебе в руки. Уточню, есть два варианта:1. Если вы хотите отловить закрытие виджета написанного вами, то достаточно переопределить метод - closeEvent 2. Установить фильтр на события и отслеживать его закрытие. Название: Re: Как отловить нажатие [x]? Отправлено: ZIkos от Ноябрь 28, 2007, 17:10 Не могли бы вы привести пример, как польоваться QCloseEvent для произвольного виджета
Название: Re: Как отловить нажатие [x]? Отправлено: fanat9 от Ноябрь 28, 2007, 17:12 \examples\desktop\systray\
Название: Re: Как отловить нажатие [x]? Отправлено: pastor от Ноябрь 28, 2007, 17:13 Не могли бы вы привести пример, как польоваться QCloseEvent для произвольного виджета В своем классе наследнике перегружаешь метод closeEvent(QCloseEvent *event) и в немже выполняем нужные действия. Далее читаем в ассистанте про QCloseEvent Название: Re: Как отловить нажатие [x]? Отправлено: Dodge от Ноябрь 28, 2007, 20:02 В своем классе наследнике перегружаешь метод closeEvent(QCloseEvent *event) и в немже выполняем нужные действия. Далее читаем в ассистанте про QCloseEvent Опять же уточню, во втором случае, в первую очередь нада смотреть не QCloseEvent, а эвент филтер(eventFilter).Название: Re: Как отловить нажатие [x]? Отправлено: Alex03 от Ноябрь 29, 2007, 07:46 Не могли бы вы привести пример, как польоваться QCloseEvent для произвольного виджета Код: void СSomeWidget::closeEvent(QCloseEvent * e) Название: Re: Как отловить нажатие [x]? Отправлено: ZIkos от Ноябрь 29, 2007, 11:59 Всем спасибо. Как отловить closeEvent у своего собственного класса, который является наследником от QWidget я понял.
Но как отловить его у экзепляра класса QDockWidget *pDock1 = new QDockWidget? Название: Re: Как отловить нажатие [x]? Отправлено: Barmaglodd от Ноябрь 29, 2007, 12:02 QObject::installEventFilter в помощь.
Создаешь наследника от QObject, в нем перекрываешь eventFilter(тут ловишь QCloseEvent), и устанавливаешь его фильтром на pDock1. Название: Re: Как отловить нажатие [x]? Отправлено: ZIkos от Ноябрь 29, 2007, 12:09 Большое спасибо. Был бы очень благодарен если бы вы привели пример кода. ;)
Название: Re: Как отловить нажатие [x]? Отправлено: Barmaglodd от Ноябрь 29, 2007, 12:12 А в ассистанте не пробовали смотреть? ;)
Кусок оттуда :) Код: //Сам фильтр Название: Re: Как отловить нажатие [x]? Отправлено: ZIkos от Ноябрь 29, 2007, 12:16 Только что посмотрел. Спасибо. 8)
|