![]() |
|
![]() ![]() ![]() |
|
Brodyaga |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 599 Регистрация: 19.1.2008 Репутация: нет Всего: 2 |
Всем доброго времени суток!
Как мне отличить как было закрыто окно, по нажатию на X или вызовом метода close? Если по нажатию на X, то вызывается событие closeEvent, где я делаю необходимые мне действия. Если я вызываю метод close, так же вызывается событие closeEvent и делаются теже действия, хотя их нужно выполнять ТОЛЬКО при нажатии на X. Как мне определить каким образом происходит закрытие формы, чтобы знать, выполнять необходимые мне действия или нет? Может быть можно както перехватить нажатие именно на X ? Или как мне закрыть окно, чтобы не вызывался метод closeEvent? P.S. Вариант с флагом не предлагать |
|||
|
||||
borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 48 Всего: 135 |
Переопредели в своём классе функцию close, в которой взводи флажок и вызывай QWidget::close(), а в closeEvent() проверяй, если флажок взведён, то делай одни действия, иначе - другие. Не забудь там же флажок опустить
-------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
Helmet |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 30 Регистрация: 27.2.2009 Где: Someone's hea d Репутация: нет Всего: 1 |
|
|||
|
||||
Brodyaga |
|
||||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 599 Регистрация: 19.1.2008 Репутация: нет Всего: 2 |
Спасибо, но я же просил без флага.
И по нажатию на крестик и при вызове метода QWidget::close() - QCloseEvent::spontaneous() возвращает false :( |
||||||
|
|||||||
Helmet |
|
||||
![]() Новичок Профиль Группа: Участник Сообщений: 30 Регистрация: 27.2.2009 Где: Someone's hea d Репутация: нет Всего: 1 |
Странно. У меня (Windows XP) как раз по крестику - спонтениус, по close() - нет. Да и дока говорит, что так должно быть
|
||||
|
|||||
Brodyaga |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 599 Регистрация: 19.1.2008 Репутация: нет Всего: 2 |
Сейчас проверил... в обычной форме эта функция работает, но я использую её в перехватчике события closeEvent на MDI-форме. Там она почемуто не срабатывает :( |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |