首页 > 解决方案 > QMainWindow.move() 是否将窗口位置绑定到屏幕?

问题描述

是否QMainWindow.move()将主窗口的位置绑定到屏幕?

我正在开发一个 PyQt5 应用程序,该应用程序将一个无框窗口放置在屏幕的某个位置,靠近触发窗口显示事件的系统托盘图标。

代码中的逻辑不是很聪明,但似乎可以解决问题:

    systray_icon_pos = self.status_icon.geometry().center()
    self.move(systray_icon_pos.x() - self.width() / 2,
              systray_icon_pos.y())

用户抱怨窗口出现在屏幕外,而在我的桌面上,它不会超出屏幕边界,即使我修补该代码以将大量数字硬编码为move参数。我认为这可能是因为我们使用了不同的桌面环境(我使用 Mate,他使用 Gnome),但在测试时,我确实观察到了他描述的行为。我只是无法重现它。

此外,互联网上的一些人使用move(-50000, -50000)通过将其置于屏幕外来临时隐藏窗口(这里是一个示例)。

我在docs中没有明确提及这一点。

标签: pythonqt5pyqt5

解决方案


推荐阅读