![]() |
|
|
![]()
|
|
| gordmiand |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 772 Регистрация: 15.4.2007 Репутация: нет Всего: 0 |
подскажите пож-та может ли программа перезагрузить саму себя? дайте наиболее простой пример на это...
|
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 24 Всего: 196 |
Если этот код поместить в main, то программа будет себя перезапускать:
Тоже самое можно сделать средствами Qt. См. http://qt-project.org/doc/qt-5.0/qtcore/qprocess.html |
|||
|
||||
| gordmiand |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 772 Регистрация: 15.4.2007 Репутация: нет Всего: 0 |
bsa: а как это сделать с использованием QProcess-a?
|
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 24 Всего: 196 |
|
|||
|
||||
| gordmiand |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 772 Регистрация: 15.4.2007 Репутация: нет Всего: 0 |
bsa: команда
не дает полной перезагрузки программы - например ее конструктор не вызывается заново, а лишь мигает (перезапускается) форма приложения...мне же надо сделать полноценный перезапуск программы - как будто ее закрыли и сразу же заново запустили... |
|||
|
||||
| vinter |
|
|||
![]() Explorer ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2735 Регистрация: 1.4.2006 Где: Н.Новгород Репутация: 3 Всего: 56 |
gordmiand, не знаю, что у тебя там мигает, но exit(0) убивает программу. Не форму\окно\виджет, а программу.
|
|||
|
||||
| gordmiand |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 772 Регистрация: 15.4.2007 Репутация: нет Всего: 0 |
vinter : а Вы поставьте какой-нибудь принт, например, в конструкторе программы и посмотрите после выполнения вышеуказанного кода (выполняющегося например по онклику кнопки) запустится ли заново конструктор (т.е. будет ли еще раз принт)...
|
|||
|
||||
| vinter |
|
|||
![]() Explorer ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2735 Регистрация: 1.4.2006 Где: Н.Новгород Репутация: 3 Всего: 56 |
gordmiand, я знаю, что делает exit(), поэтому проверять там нечего. Кстати, что ты имеешь ввиду под "конструктором программы"? Такого понятия не существует. В целом, проблема где-то у тебя в коде. Нужно больше информации.
|
|||
|
||||
| gordmiand |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 772 Регистрация: 15.4.2007 Репутация: нет Всего: 0 |
под конструктором программы я имел ввиду конструктор MainWindow, который и не перезапускается после выполнения вышеуказанного кода, а должна быть полная аналогия только что запущенной программы...
Добавлено через 6 минут и 28 секунд exit(0); срабатывает только один раз, а мне надо, чтобы программа перезапускалась бы при каждом онклике какой-то кнопки... |
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 24 Всего: 196 |
gordmiand, exit(0) завершает текущую программу (и без вариантов). Если до него не доходит, то надо разбираться, почему QProcess не смог выполнить запуск. Но это другая задача.
|
|||
|
||||
| gordmiand |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 772 Регистрация: 15.4.2007 Репутация: нет Всего: 0 |
bsa: вот что я делаю: создал новыое gui-приложение, в конструкторе MainWindow написал принт
сделал онклик кнопки
В итоге после первого запуска программы печатается принт из конструктора (что естественно верно), а после онклика - его принт и выполняется exit(0)...при повторных нажатиях на эту "перезагрузочную" кнопку ничего не происходит - нет ни его принта, ни exit-a, ни принта конструктора приложения (а должен бы быть) - мне же надо перезагружаться по каждому онклику... |
||||
|
|||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 24 Всего: 196 |
gordmiand, может просто программа отцепляется от консоли? попробуй передавать программе счетчик в качестве параметра. Или отображай на форме время запуска. Думаю, ты заметишь, что программа перезапускается.
|
|||
|
||||
| gordmiand |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 772 Регистрация: 15.4.2007 Репутация: нет Всего: 0 |
bsa: я не спорю, может таким способом программа и "перезапускается", но не так, как мне надо - мне надо сделать полный перезапуск программы - с запуском конструктора mainwindow и т.д., т.е. чтобы выполнялись бы все методы, что и при первом запуске программы...
|
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 24 Всего: 196 |
gordmiand, сделай то, что я тебе сказал. Не пытайся придумывать свои теории. Перезапуск программы бывает только одного вида - полный.
|
|||
|
||||
| gordmiand |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 772 Регистрация: 15.4.2007 Репутация: нет Всего: 0 |
bsa: тогда, пожалуйста, объясните что происходит при повторном онклике на кнопке - код онклика не выполняется (ставил там принт), но форма мигает (типа закрывается и открывается вновь)?
|
|||
|
||||
![]()
|
| Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |