Python 如何设置将窗口显示在指定的显示器上
最近在用Python搞一个带图形界面的小工具在连接了多显示器的电脑上,运行Python GUI程序(PySide6)
想问一下,有没有模块能够
1、读取显示器列表
2、将某个窗口显示在指定显示器上
谢谢各位大佬 411161555 发表于 2023-7-18 17:49
你要学会善用身边的工具。
pyside6.QtWidgets有qdesktopwidget这个类吗? 本帖最后由 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()
411161555 发表于 2023-7-18 17:49
你要学会善用身边的工具。
你的工具真不错,能给个链接吗【来自白嫖怪的问候】 我晕,为什么不让用GPT呢? 411161555 发表于 2023-7-19 14:21
我晕,为什么不让用GPT呢?
因为GPT会编答案是常识,你都没验证GPT给出的代码就随便贴出来让别人善用身边的工具,你给的那段代码错到离谱连类都没有。 你试一下这个
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]