You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PySide6获取屏幕分辨率:错误实例化QScreen得异常值,求正确方法

Qt for Python 获取屏幕分辨率的正确方法

你直接实例化QtGui.QScreen()的方式是错误的,QScreen不能通过这种方式创建有效实例,因此得到的是无效几何数据,导致结果异常且每次运行都不同。

正确实现需要先初始化QGuiApplication,再通过应用实例获取屏幕对象:

获取主屏幕分辨率

import sys
from PyQt5 import QtGui

# 必须先初始化GUI应用
app = QtGui.QGuiApplication(sys.argv)
# 获取系统主屏幕
primary_screen = app.primaryScreen()
if primary_screen:
    # geometry()返回包含位置和尺寸的矩形,size()直接提取分辨率宽高
    print(f'主屏幕分辨率: {primary_screen.geometry().size()}')
    print(f'主屏幕完整几何信息: {primary_screen.geometry()}')
sys.exit(app.exec_())

获取多屏幕的分辨率信息

如果系统连接了多个显示器,可以遍历所有屏幕:

import sys
from PyQt5 import QtGui

app = QtGui.QGuiApplication(sys.argv)
# 获取所有屏幕对象
screens = app.screens()
for idx, screen in enumerate(screens):
    print(f'屏幕 {idx+1} 分辨率: {screen.geometry().size()}')
    print(f'屏幕 {idx+1} 完整几何信息: {screen.geometry()}')
sys.exit(app.exec_())

说明

  • geometry()返回的是QRect对象,包含屏幕的位置坐标和尺寸信息;size()方法可以直接提取分辨率的宽和高。
  • Qt的GUI相关组件必须依赖QGuiApplication(或QApplication)实例才能正常工作,这是获取有效屏幕信息的前提。

内容的提问来源于stack exchange,提问作者j77h

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 09:05:23