使用PyQt5的Python3中的当前屏幕大小

Alb*_*r31 1 qt python-3.x pyqt5

在Qt5 python3中是否有替代代码:

https://askubuntu.com/questions/153549/how-to-detect-a-computers-physical-screen-size-in-gtk

from gi.repository import Gdk
s = Gdk.Screen.get_default()
print(s.get_width(), s.get_height())
Run Code Online (Sandbox Code Playgroud)

ekh*_*oro 10

您可以获得主屏幕,它返回一个QScreen对象:

import sys
from PyQt5 import QtWidgets

app = QtWidgets.QApplication(sys.argv)

screen = app.primaryScreen()
print('Screen: %s' % screen.name())
size = screen.size()
print('Size: %d x %d' % (size.width(), size.height()))
rect = screen.availableGeometry()
print('Available: %d x %d' % (rect.width(), rect.height()))
Run Code Online (Sandbox Code Playgroud)


Alb*_*r31 5

以下python3代码允许获取屏幕大小,但是方法有替代 QtWidgets.QDesktopWidget().screenGeometry(-1)方法:

import sys
from PyQt5 import QtWidgets

def main():
"""
allow you to get size of your courant screen
-1 is to precise that it is the courant screen
"""
    sizeObject = QtWidgets.QDesktopWidget().screenGeometry(-1)
    print(" Screen size : "  + str(sizeObject.height()) + "x"  + str(sizeObject.width()))   


if __name__ == '__main__':
    app = QtWidgets.QApplication(sys.argv)
    main()
    sys.exit(app.exec_())
Run Code Online (Sandbox Code Playgroud)


Pap*_*eno 5

的值screenGeometry()是您查看的显示内容。0 是主屏幕,1、2 表示安装了更多显示器。

要列出所有可用的显示器:

def screen_resolutions():
    for displayNr in range(QtWidgets.QDesktopWidget().screenCount()):
        sizeObject = QtWidgets.QDesktopWidget().screenGeometry(displayNr)
        print("Display: " + str(displayNr) + " Screen size : " + str(sizeObject.height()) + "x" + str(sizeObject.width()))
Run Code Online (Sandbox Code Playgroud)