当模式窗口最小化时,最小化所有应用程序窗口(在 Linux 上)
Minimize all application windows when a modal window gets minimized (on Linux)
我有一个带有一些窗口的应用程序,其中一个是模态的。在Windows操作系统上,当我最小化模态窗口时,所有其他窗口也会最小化。在 Linux(我使用的是 Astra Linux(上,只有模态窗口最小化,所有其他窗口状态不会更改,并且它们不可用于任何操作,例如禁用它们。我或Astra Linux有什么问题?如何在 Astra Linux 中执行相同的最小化操作?
您可能希望覆盖模态小部件的 changeEvent
方法来捕获WindowStateChange
事件,检查小部件状态,如果最小化,则强制所有其他顶级小部件也最小化(如果没有,则恢复所有窗口(:
#include <QEvent>
#include <QApplication>
void Form::changeEvent(QEvent * event)
{
if(event->type() == QEvent::WindowStateChange)
{
QWidgetList list = QApplication::topLevelWidgets();
if(isMinimized())
{
for(int i=0; i<list.size(); i++)
{
if(!list.at(i)->isMinimized())
{
list[i]->setWindowState(Qt::WindowMinimized);
}
}
}
else
{
for(int i=0; i<list.size(); i++)
{
if(list.at(i)->isMinimized())
{
list[i]->activateWindow();
//or:
//list[i]->setWindowState(Qt::WindowActive);
}
}
}
}
}
相关文章:
- 超轻 - 如何最小化窗口
- 如何隐藏最大化和最小化按钮并在qml应用程序窗口中显示关闭按钮?
- 如何使用 stl 最小化 c++ 中所有打开的窗口
- 当模式窗口最小化时,最小化所有应用程序窗口(在 Linux 上)
- 什么是窗口最大化/最小化/恢复的WM Windows消息
- 检查特定应用程序的窗口是否处于最小化状态
- 最小化/最大化后,MFC窗口图形消失了
- 最小化后无法恢复 SDL 窗口
- DirectX9 C++ - 在窗口最小化时加载纹理
- 从最小化的窗口捕获图像
- 如果 winapi 窗口最小化,如何恢复它?
- 在最小化的 MFC 窗口中查找 CListCtrl 的有效大小
- 优麒麟 SDK QML 快速查看窗口关闭,最小化按钮不可见
- 关闭窗口不会最小化我刚刚启动的进程的窗口
- MFC:如何最小化按钮单击时的窗口
- 在qml中恢复最小化的无框窗口
- WM_PAINT在最小化并恢复窗口后停止工作
- MFC-仅最小化主MDI窗口
- 如何在C++中将密钥发送到最小化窗口
- 当顶层窗口最小化时,弹出窗口无法接收焦点