gpt4 book ai didi

python - 相对于父窗口居中 Qt 子窗口

转载 作者:太空狗 更新时间:2023-10-30 02:22:58 26 4
gpt4 key购买 nike

我有一个 QMainWindow,它创建多个 QDialog 子窗口并将自己设置为它们的父窗口。当只有一个监视器时,一切正常,窗口在当前监视器中正确居中。但是当我有多个监视器时,子窗口往往会在主监视器上打开,而不是在 QMainWindow 当前所在的监视器上打开。

请注意,我的窗口必须能够在其父窗口之外导航(它们每个都设置了 Qt.Window 标志)。

那么,我如何使小部件相对于其父位置居中(即以 QMainWindow 为中心)以避免它们在其他地方打开?

这是我目前用来使窗口居中的方法:

def centerOnScreen(widget):
desktopWidget = QApplication.desktop()
screenRect = desktopWidget.availableGeometry(widget)
widget.move(screenRect.center() - widget.rect().center())

最佳答案

您的代码似乎是实现预期行为的良好尝试。两个建议:

  1. 不要获取桌面参数,而是尝试直接找到 QMainWindow 的左侧、顶部、宽度和高度。
  2. 在调用 Exec 方法之前,使用此几何信息将对话框移动(并可能调整大小)到应用程序的中心。

希望对您有所帮助。

关于python - 相对于父窗口居中 Qt 子窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7381998/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com