我有一个QMainWindow,它创建了多个QDialog子窗口,并将自身设置为它们的父窗口。当只有一个显示器时,一切正常,窗口正确地居中于当前显示器。但是当我有多个显示器时,子窗口倾向于在主显示器上打开,而不是在QMainWindow当前所在的显示器上打开。
请注意,我的窗口必须能够导航到其父窗口之外(它们每个都设置了Qt.Window标志)。
因此,如何相对于其父窗口位置(即在QMainWindow上居中)居中小部件以避免它们在其他地方打开?
这是我目前用于居中我的窗口的内容:
def centerOnScreen(widget):
desktopWidget = QApplication.desktop()
screenRect = desktopWidget.availableGeometry(widget)
widget.move(screenRect.center() - widget.rect().center())