lihaisanhui 发表于 2023-7-18 17:36

Python 如何设置将窗口显示在指定的显示器上

最近在用Python搞一个带图形界面的小工具

在连接了多显示器的电脑上,运行Python GUI程序(PySide6)
想问一下,有没有模块能够
1、读取显示器列表
2、将某个窗口显示在指定显示器上

谢谢各位大佬

411161555 发表于 2023-7-18 17:49

zhuxiangyu1024 发表于 2023-7-18 18:24

411161555 发表于 2023-7-18 17:49
你要学会善用身边的工具。

pyside6.QtWidgets有qdesktopwidget这个类吗?

zhuxiangyu1024 发表于 2023-7-18 19:24

本帖最后由 zhuxiangyu1024 于 2023-7-18 19:26 编辑

给你个能用的例子,这段代码会把我主屏建立的窗口移动到副屏的左上角,但是我建议还是换pyqt,遇见问题网上的解决方案可能会多点。
from PySide6 import QtWidgets

app = QtWidgets.QApplication([])
window=QtWidgets.QMainWindow()
window.show()
window.move(app.screens().availableGeometry().x(),app.screens().availableGeometry().y())

app.exec()

vethenc 发表于 2023-7-18 19:31

411161555 发表于 2023-7-18 17:49
你要学会善用身边的工具。

你的工具真不错,能给个链接吗【来自白嫖怪的问候】

411161555 发表于 2023-7-19 14:21

我晕,为什么不让用GPT呢?

zhuxiangyu1024 发表于 2023-7-21 15:09

411161555 发表于 2023-7-19 14:21
我晕,为什么不让用GPT呢?

因为GPT会编答案是常识,你都没验证GPT给出的代码就随便贴出来让别人善用身边的工具,你给的那段代码错到离谱连类都没有。

yc0205 发表于 2023-7-27 17:43

你试一下这个
import sys
from PyQt6.QtWidgets import QApplication, QMainWindow
from PyQt6.QtGui import QScreen, QWindow

class MainWindow(QMainWindow):
    def __init__(self):
      super().__init__()

      # 读取显示器列表
      screens = QApplication.screens()
      print("显示器数量:", len(screens))
      for i, screen in enumerate(screens):
            print("显示器", i+1, ":", screen.name())

      # 设置窗口显示在指定显示器上(示例中选择第二个显示器)
      if len(screens) >= 2:
            secondary_screen = screens
            self.set_screen(secondary_screen)# 设置窗口显示在第二个显示器上

    def set_screen(self, screen):
      # 获取窗口的QWindow对象
      window = self.windowHandle()

      if window is not None:
            # 移动窗口到指定显示器
            window.setScreen(screen)


if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = MainWindow()
    window.show()
    sys.exit(app.exec())
页: [1]
查看完整版本: Python 如何设置将窗口显示在指定的显示器上