为什么PyQt5 QWindow.setScreen()不起作用?

时间:2019-04-16 18:01:40

标签: python pyqt pyqt5

我正在尝试在辅助屏幕上运行Qt QML应用程序,但是它不起作用。我正在使用PyCharm作为IDE和PyQt5。

我确实已物理连接了第二个屏幕。并且应用程序在主屏幕上正确运行,但是即使我尝试将“窗口”屏幕设置为次屏幕也无法正常工作。 已经尝试过:

self.app = QGuiApplication(sys.argv)
self.engine = QQmlApplicationEngine()
# ...
self.engine.load(my_qml_name)
# ...
qW = QWindow(self.app.topLevelWindows()[0])
qW.setScreen(self.app.screens()[1])

我只能在主屏幕上运行该应用程序。

P.S .:我的topLevelWindow是QQuickWindow,而不是QWindow。

1 个答案:

答案 0 :(得分:0)

请勿将self.app.topLevelWindows()[0]强制转换为任何内容。

代码应如下所示

self.app = QGuiApplication(sys.argv)
self.engine = QQmlApplicationEngine()
# ...
self.engine.load(my_qml_name)
# ...
qW = self.app.topLevelWindows()[0]
qW.setScreen(self.app.screens()[1])