crossplatform.ru

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

 
Ответить в данную темуНачать новую тему
> Завершение работы ОС, Как перехватить завершение ОС
dimon1980ddd
  опции профиля:
сообщение 23.12.2010, 13:53
Сообщение #1


Студент
*

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

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




Репутация:   0  


Как например в событии closeEvent() приложения отличить закрытие приложения по требованию операционной системы при перезагрузке от простого закрытия приложения?
Желательно кроссплатформенно....
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
wiz29
  опции профиля:
сообщение 23.12.2010, 13:57
Сообщение #2


Старейший участник
****

Группа: Участник
Сообщений: 600
Регистрация: 7.7.2010
Из: Санкт-Петербург
Пользователь №: 1866

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




Репутация:   12  


Цитата(dimon1980ddd @ 23.12.2010, 13:53) *
Как например в событии closeEvent() приложения отличить закрытие приложения по требованию операционной системы при перезагрузке от простого закрытия приложения?
Желательно кроссплатформенно....

напрямую никак, смотри в сторону eventFilters для твоего приложения и "прикручивай" логику в зависимости от возможных вариантов завершения приложения пользователем (скорее всего тут некие клики мышкой либо комбинации хоткеев или реакция на какие то экшны)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
panter_dsd
  опции профиля:
сообщение 23.12.2010, 15:45
Сообщение #3


Жаждущий знаний
***

Группа: Участник
Сообщений: 254
Регистрация: 1.1.2009
Из: Санкт-Петербург
Пользователь №: 474

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




Репутация:   3  


void QApplication::saveStateRequest ( QSessionManager & manager ) [signal]
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
dimon1980ddd
  опции профиля:
сообщение 23.12.2010, 21:59
Сообщение #4


Студент
*

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

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




Репутация:   0  


Логика такая - окно в трее и закрывается только через выпадающее меню...
Плюс если перегрузка Windows надо впоймать :-)
void ServerWindow::closeEvent(QCloseEvent *event)
{

  if (trayIcon)
  {
    hide();
    event->ignore();
  }
  else
  {
    port->isTerminated = true;
    event->accept();
  }
}
Причина редактирования: тут есть тег code
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




RSS Текстовая версия Сейчас: 28.3.2024, 15:18