| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > restart app |
| Автор: daemonaz 2.11.2012, 14:18 | ||
| Вот такой вопрос, как перезапустить приложение по команде exit(int)? Иначе говоря, по умолчанию QtCreator генерирует при создании приложении MainWindow такой код в main.cpp
При вызове quit я так понимаю вызывается exit(0), таким образом app.exec выдает 0, однако мне бы хотелось зациклить эти строчки до сих пор пока не появится result = 1, я в mainwindow говорю об этом с помошью exit(1), однако при выходе ничего не происходит. |
| Автор: loneybibi 3.11.2012, 00:32 | ||||
| Как я понял надо что бы программа сама себя перезапускала. Не знаю зачем такое надо, я пробовал у меня получилось только вот что то вроде этого:
Этот код будет перезапускать программу до тех пор пока не будет вызван метод exit(); А вообще лучше перезапуск приложения сделать по другому. Перегрузить событие QCloseEvent у окна и на него повесить:
После чего программа при закрытии окна или вызове метода close() закроет текущую копию и запустит новую. |
| Автор: borisbn 3.11.2012, 08:49 |
| loneybibi, первый вариант не рабочий ISO C++ forbids taking address of function '::main' Он будет работать только на студии. А второй совершенно нормальный. |
| Автор: loneybibi 3.11.2012, 15:24 | ||
Не знаю у меня работает под mingw и g++ на ура |
| Автор: borisbn 3.11.2012, 17:07 |
не должно. в стандарте сказано, что не должно. http://liveworkspace.org/code/246000e0c6583543a9b2b96358116c65 |
| Автор: loneybibi 3.11.2012, 17:26 | ||
Я понимаю что это вообще "велосепед" и работать может и не должен Еще я же указал что лучше использовать второй вариант ! |
| Автор: daemonaz 14.11.2012, 15:49 | ||
Повесил startDetached на closeEvent, не сработало почему-то, что не так делаю?
|
| Автор: borisbn 14.11.2012, 16:49 |
applicationName - обычная строка, которая будет пустая, если ты её явно не установил (setApplicationName) тебе нужен applicationFilePath |
| Автор: Snake174 15.11.2012, 13:56 | ||||||||
В MainWindow.h объяви:
В MainWindow.cpp:
При закрытии приложения:
В main.cpp:
|
| Автор: daemonaz 15.11.2012, 14:38 |
| Snake174, спасибо! |