【发布时间】:2017-05-31 13:26:25
【问题描述】:
早上好,在我在 MacOSX 上的应用程序中,我想为用户提供“最小化到托盘”选项。我使用Qt5,我重写了
changeEvent(QEvent *event)
功能。我在那里做类似的事情
switch( event->type() )
{
case QEvent::WindowStateChange:
{
if ( this->windowState() & Qt::WindowMinimized ) {
if( *option minimize to tray enable* ) {
event->ignore();
QTimer::singleShot(0, this, SLOT(hide()));
}
}
break;
}
default:
break;
}
嗯,它可以在 Linux 和 Windows 上运行,但问题是在 MacOSX 中,此代码无法正常运行并产生错误。实际上,窗口仍然在任务栏中最小化(除了停靠栏),此外,如果从任务栏而不是托盘图标调整窗口大小,则 GUI 被阻止并且不会更改。 GUI 仍然可以发送信号,但不能更改。我必须从托盘图标重新显示窗口以解锁 GUI。
那么问题来了:如何避免在 MacOSX 上的任务栏中最小化窗口?
另一个相关问题:我读过一些论坛,其中一些用户谈到 MacOSX 中的“标准行为”,例如在单击“x”按钮时不关闭应用程序,或者不使用托盘图标 ecc。 ecc....有人可以发布一个官方链接,应用程序在 MacOSX 中应该如何表现?
非常感谢大家
【问题讨论】:
标签: macos qt minimize trayicon