【问题标题】:why PyQt5 QWindow.setScreen() not working?为什么 PyQt5 QWindow.setScreen() 不工作?
【发布时间】:2019-04-16 18:01:40
【问题描述】:

我正在尝试在辅助屏幕上运行 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。

【问题讨论】:

  • qW.windowHandle().setScreen(self.app.screens()[1]) 工作吗?
  • 不,它没有,它说 qW 没有 windowHandle() 属性。

标签: python pyqt pyqt5


【解决方案1】:

不要将 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])

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-02-23
    • 2021-09-20
    • 1970-01-01
    • 2016-06-29
    • 1970-01-01
    • 2016-11-19
    • 1970-01-01
    • 2017-10-12
    相关资源
    最近更新 更多