crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Аналог exit; из php, в php exit; а в Qt?
thechicho
  опции профиля:
сообщение 29.9.2011, 14:24
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 38
Регистрация: 26.9.2011
Пользователь №: 2907

Спасибо сказали: 1 раз(а)




Репутация:   0  


привет.
в пхп есть exit;
который прерывает дальнейшее выполнение скрипта (т.е. код после exit; не выполняется).
есть ли что-то подобное в Qt?
а то как-то парит комментировать/раскомментировать.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
hoRUS
  опции профиля:
сообщение 29.9.2011, 14:39
Сообщение #2


Студент
*

Группа: Участник
Сообщений: 30
Регистрация: 10.7.2008
Из: Москва
Пользователь №: 231

Спасибо сказали: 5 раз(а)




Репутация:   0  


В С/С++ есть
void exit ( int status );

, кот. завершает вызывающий процесс. status - код завершения (принято, что 0 - норм.)

В Qt есть статический метод
void QCoreApplication::exit ( int returnCode = 0 ) [static]

, кот. завершает текущий цикл обработки событий приложения, возвращая returnCode . Если в main() не создаётся другой цикл обработки событий после завершаемого (не вызывается другой exec() после текущего), то процесс завершится.

Есть статический метод
void QCoreApplication::quit() [static]

Он эквивалентен QCoreApplication::exit(0).
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
thechicho
  опции профиля:
сообщение 29.9.2011, 15:26
Сообщение #3


Студент
*

Группа: Участник
Сообщений: 38
Регистрация: 26.9.2011
Пользователь №: 2907

Спасибо сказали: 1 раз(а)




Репутация:   0  


сенкс!

если пишу exit(0);
qDebug() срабатывает
и в консоль выходит QWaitCondition: Destroyed while threads are still waiting
что, наверное, не есть хорошо?

если пишу QCoreApplication::exit(); или QCoreApplication::quit();
qDebug() срабатывает, но прога закрывается.

вопрос:
1. что и куда записать, чтобы можно было писать не QCoreApplication::exit();
а просто exit(); (или quit(); );
2. реально ли, чтобы прога не вырубалась после вызова QCoreApplication::exit(); ?
то что в консоль выводит и прерывается, уже хорошо, конечно.
но хотелось бы, чтобы и в проге можно было посмотреть результат.
я так его добавляю ща:
ui->plainTextEdit->appendPlainText(blablabla);

может есть чо-нить типа break();
не? :scratch_one-s_head:

кто шарит, помогите еще тут плз
вопросы от ньюба
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
thechicho
  опции профиля:
сообщение 30.9.2011, 16:20
Сообщение #4


Студент
*

Группа: Участник
Сообщений: 38
Регистрация: 26.9.2011
Пользователь №: 2907

Спасибо сказали: 1 раз(а)




Репутация:   0  


бл, чо вы мне голову морочите)

[b]return;[/b]


и все!!!

как сообщение редактировать?О_о
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Andrewshkovskii
  опции профиля:
сообщение 30.9.2011, 20:05
Сообщение #5


Активный участник
***

Группа: Участник
Сообщений: 351
Регистрация: 27.12.2008
Пользователь №: 467

Спасибо сказали: 18 раз(а)




Репутация:   1  


Цитата(thechicho @ 30.9.2011, 17:20) *
бл, чо вы мне голову морочите)

[b]return;[/b]


и все!!!

как сообщение редактировать?О_о

Молодой человек, return выполняет возврат из функции к управляющему коду, вызвавшему функцию. Если вы в функции main вызовите return - то ,конечно, программа завершится.
Так что вы не правы, для ваших целей нужен exit/quit.
По вашим другим вопросам - выводите отладочную информацию ДО вызова exit/quit, это же очевидно. К тому же, код, находящийся после return никогда не будет выполнен.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
thechicho
  опции профиля:
сообщение 30.9.2011, 21:37
Сообщение #6


Студент
*

Группа: Участник
Сообщений: 38
Регистрация: 26.9.2011
Пользователь №: 2907

Спасибо сказали: 1 раз(а)




Репутация:   0  


// выводите отладочную информацию ДО вызова exit/quit, это же очевидно.
да я так и делал)
// К тому же, код, находящийся после return никогда не будет выполнен.
мне это и надо было
если QCoreApplication::quit(); написать, то прога закроется.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 1.10.2011, 22:06
Сообщение #7


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


thechicho, exit - выход (из программы) и только для этих целей его надо использовать.
а для отладки надо использовать qDebug()
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


4 чел. читают эту тему (гостей: 4, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 23.11.2024, 1:53