(见编辑)
我正在 gnome 下开发一个 QT/c++ 应用程序。
该应用程序有一个主窗口和 QListBox 子窗口。
当我 alt-tab 离开应用程序时,这两个窗口都显示为单独的主窗口。
当我(或以后的用户)使用 alt-tab 时,我怎样才能使它只显示一个窗口?
我猜这种行为是因为一个主窗口没有剪辑子窗口 - 子窗口扩展了主窗口的边界。Gnome 对许多其他应用程序也有不好的 alt-tab 行为,显示模式对话框与主窗口分开。但就我的应用程序而言,这真的很烦人。
我想我可以制作一个包含两个现有窗口的巨大透明窗口。但是找到一个“干净”的解决方案会更好。
(最合乎逻辑的猜测确实是它与窗口标志有关。我已经尝试了我能想到的所有合理的标志组合。这里描述了窗口类型)
编辑:该应用程序有一个 QWidget 作为其主窗口(不是 QMainWindow),QListView 包含在 QWidget 对象中,并通过将一个点传递给主窗口来创建。用 Qt::Tool 设置样式 | Qt::FramelessWindowHint。
Edit2: Qt::X11BypassWindowManagerHint 样式确实可以从 alt-tab 列表中删除窗口。问题是它还使窗口“不受管理”,因此它覆盖了其他窗口。每当我失去焦点时,我都可以手动隐藏 - 现在奖励更好的解决方案。