【问题标题】:Qt Mac - App not restoring after closingQt Mac - 关闭后应用程序未恢复
【发布时间】:2015-11-11 19:47:59
【问题描述】:

在 Mac 中,当我们按下关闭按钮时,应用程序默认隐藏到停靠。我的 Qt 应用程序也发生了同样的情况,但之后它并没有按预期恢复。有很多帖子提供了检测停靠图标点击的代码。

我不需要检测,我只想要默认功能,它应该恢复。

如果我最小化但不关闭它会恢复。

我使用的修复是:

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

它使它在关闭时最小化,然后我的应用程序可以正常恢复。但现在的问题是,除非我退出应用程序,否则它会阻止 Mac 上的关机。关机使应用最小化。

我正在使用Qt 5.4

【问题讨论】:

    标签: c++ macos qt


    【解决方案1】:

    为了解决这个问题,我想知道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
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-08-28
      • 2014-07-18
      • 1970-01-01
      • 1970-01-01
      • 2011-10-13
      • 1970-01-01
      • 2015-07-24
      • 2020-07-19
      相关资源
      最近更新 更多