crossplatform.ru

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

> При закрытии главного окна приложение не завершается
ilya
  опции профиля:
сообщение 18.4.2012, 10:11
Сообщение #1


Новичок


Группа: Новичок
Сообщений: 6
Регистрация: 18.4.2012
Пользователь №: 3330

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




Репутация:   0  


Всем привет.

По какой-то причине закрытие главного окна, унаследованного от QWidget, не приводит к завершению приложения. Причём не помогают завершить программу ни close(), ни destroy(), ни QApplication::exit(). close(), например, возвращает true, окно закрывается, но код внутри этого окна продолжает выполняться. Кто-нибудь сталкивался с такой проблемой?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Snake174
  опции профиля:
сообщение 18.4.2012, 12:04
Сообщение #2


Студент
*

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

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




Репутация:   0  


Попробуй как-нибудь так сделать:
void MainForm::Start()
{
    if (StartRecorder())
  {
      RecordInfo info = recorder->GetRecordInfo();

   // делаем что-то с info
   ......
  }
  else
    close();
}

bool MainForm::StartRecorder()
{
    recorder = new Recorder;

    if (recorder)
    {
      if (!recorder->Start())
      {
        RecorderError err;
        QMessageBox::critical(this, tr("Ошибка"), err.GetErrorDescription());

        delete recorder;
        recorder = 0;

  return false;
      }
    }

  return true;
}


Сообщение отредактировал Snake174 - 18.4.2012, 12:08
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ilya
  опции профиля:
сообщение 18.4.2012, 12:16
Сообщение #3


Новичок


Группа: Новичок
Сообщений: 6
Регистрация: 18.4.2012
Пользователь №: 3330

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




Репутация:   0  


Цитата(Snake174 @ 18.4.2012, 13:04) *
Попробуй как-нибудь так сделать:

Этот код будет аварийно завершать приложение при неудачной попытке создать объект типа Recorder, потому что возникающее при этом исключение останется неперехваченным. Собственно, вопрос в том и состоит, как красиво завершить приложение при возникновении ошибки.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


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


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




RSS Текстовая версия Сейчас: 16.1.2025, 0:39