Russian Qt Forum

Qt => Общие вопросы => Тема начата: Mityai от Апрель 02, 2010, 11:14



Название: return в main
Отправлено: Mityai от Апрель 02, 2010, 11:14
Доброго времени суток. Вопрос, возможно, идиотский, но всё же. Чем отличается использование return 0; от return a.exec(); в завершении функции main с определенным QApplication a(argc, argv);? И как это вообще связано с QApplication - что есть "a" в этом случае?


Название: Re: return в main
Отправлено: Пантер от Апрель 02, 2010, 11:36
return a.exec() запускает очередь сообщений и программа не завершается.
return 0 приведет к завершению программы.


Название: Re: return в main
Отправлено: alexman от Апрель 02, 2010, 12:21
Еще один идиотский вопрос: из help не понятно что ли что делает exec?


Название: Re: return в main
Отправлено: kuzulis от Апрель 02, 2010, 12:25
Цитировать
Еще один идиотский вопрос: из help не понятно что ли что делает exec?
Цитировать
eturn a.exec() запускает очередь сообщений и программа не завершается.


Название: Re: return в main
Отправлено: Mityai от Апрель 02, 2010, 12:41
Еще один идиотский вопрос: из help не понятно что ли что делает exec?
По структуре программы понадобилось сделать так:
Код:
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();

    while (w.exist)
    {
        ...
        qApp->processEvents();
    }

    return 0;
}
Здесь exist - переменная существования окна.

help читал. Банально заклинило, вопрос действительно идиотский. Всем спасибо!



Название: Re: return в main
Отправлено: Павел_F. от Апрель 02, 2010, 13:20
Уж больно странна у вас структура...


Название: Re: return в main
Отправлено: Mityai от Апрель 02, 2010, 14:08
Уж больно странна у вас структура...

Для обмена данных между приложениями по WinAPI так была сделана... Потом скорее всего в другой поток вынесу и верну a.exec().