2015-11-11 5 views
-1

В Mac, когда мы нажимаем кнопку закрытия, приложения по умолчанию скрываются до дока. То же самое происходит и с моим приложением Qt, но оно не восстанавливается после этого, как ожидалось. Есть много сообщений, которые предоставляют код для обнаружения, нажмите значок док-станции.Qt Mac - приложение не восстанавливается после закрытия

Мне не нужно обнаруживать, я просто хочу функциональность по умолчанию, которую она должна восстановить.

Он восстанавливается, если я минимизирую, но не закрываю.

Исправление я использовал:

void myAPP::closeEvent(QCloseEvent *event) 
{ 
    #ifdef Q_OS_MAC 
     event->ignore(); 
     this->setWindowState(Qt::WindowMinimized) ; 
     return; 
    #endif 
} 

Это позволяет свести к минимуму при закрытии и чем мое приложение восстанавливает правильно. Но теперь проблема в том, что она предотвращает выключение на Mac, если я не выйду из приложения. Завершение работы приложения сводит к минимуму.

Я использую Qt 5.4

ответ

0

Чтобы устранить эту проблему, я хотел бы знать источник Close Event. Если источником является пользователь, чем сведение к минимуму, если источник равен OS shutdown event, чем выход.

Мы можем использовать event-> spontaneous(), чтобы проверить это. Ниже приводится рабочий раствор:

void myAPP::closeEvent(QCloseEvent *event) 
{ 
    #ifdef Q_OS_MAC 
     if(event->spontaneous()) 
     { 
      event->ignore(); 
      this->setWindowState(Qt::WindowMinimized) ; 
      return; 
     } 
    #endif 
} 
Смежные вопросы