![]() |
|
![]() ![]() ![]() |
|
CompWorm |
|
||||||||
![]() Допеределыватель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1689 Регистрация: 6.12.2004 Где: / Репутация: нет Всего: 31 |
доброго времени!
вопрос про консольное приложение qt *.h
*.cpp
говорит, что не может найти <QCloseEvent>. удалил строчку из файла проекта QT -= gui заработало, но событие не ловит. при закрытии крестиком пишет
если остановить из qt, то
как узнать, что консоль закрыли? Это сообщение отредактировал(а) CompWorm - 14.6.2010, 21:16 |
||||||||
|
|||||||||
SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 81 Всего: 91 |
closeEvent() метод класса QWidget, а не QObject. Прервать выход из QCoreApplication нельзя, но можно узнать когда этот выход происходит по сигналу QCoreApplication::aboutToQuit() или просто повесить нужно действие после того как QCoreApplication::exec() вернет управление. При необходимости запустить снова exec(). Если нужно что-то подчистить в момент вызова деструктора QCoreApplication (как правило перед выходом из самой программы), то функция qAddPostRoutine().
Это сообщение отредактировал(а) SABROG - 15.6.2010, 08:18 |
|||
|
||||
CompWorm |
|
||||||
![]() Допеределыватель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1689 Регистрация: 6.12.2004 Где: / Репутация: нет Всего: 31 |
а.. тогда понятно почему не работает))) хорошо, тогда я пробую отловить сигнал aboutToQuit() примерно так:
нет эффекта...
не очень удобное решение... так не хочет:
меня ещё волнует вопрос с деструктором основного класса - он почему-то игнорируется... Это сообщение отредактировал(а) CompWorm - 15.6.2010, 14:28 |
||||||
|
|||||||
SABROG |
|
||||||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 81 Всего: 91 |
Значит что-то делаешь не так. // test.pro
//main.cpp
Это сообщение отредактировал(а) SABROG - 16.6.2010, 11:19 |
||||||
|
|||||||
CompWorm |
|
||||
![]() Допеределыватель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1689 Регистрация: 6.12.2004 Где: / Репутация: нет Всего: 31 |
ну по этому коду у меня куча вопросов.
1) это
не совсем честно. тут событие генерируется искусственно внутри приложения и приложение это событие чудненько ловит, а при нажатии крестика ничего не срабатывает. 2) эту запись
не понял... почему так? |
||||
|
|||||
SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 81 Всего: 91 |
В линуксе вообще не создается никакого консольного окна. Как предлагаешь организовать одинаковое поведение программ под разными платформами? А почему нет? |
|||
|
||||
CompWorm |
|
|||
![]() Допеределыватель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1689 Регистрация: 6.12.2004 Где: / Репутация: нет Всего: 31 |
смешно, но если (в винде) нажать Ctrl+C, чему есть аналоги и в линукс и в других операционках, то приложением генерируется код завершения, как я писал выше... то есть оно знает когда его завершают ![]() |
|||
|
||||
SABROG |
|
||||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 81 Всего: 91 |
Это SIGINT в линуксе. Придется делать дополнительные телодвижения, чтобы ловить этот сигнал, как советовал wasyota:
Но советую почитать этот тред, чтобы понять почему это плохая идея: http://lists.trolltech.com/qt-interest/200...ead01070-0.html http://www.zemris.fer.hr/predmeti/os1/misc/Unix2Win.htm |
||||
|
|||||
![]() ![]() ![]() |
Правила форума "С/С++: Кроссплатформенное программирование, 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. |