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())
答案 0 :(得分:8)
您可以获取primary screen,它会返回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()))
答案 1 :(得分:3)
以下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_())
答案 2 :(得分:2)
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()))
答案 3 :(得分:0)
如 ekhumoro 所述,屏幕信息可从 QApplication 对象获得。但是,应该只有一个 QApplication 的全局实例。它通常设置在 PyQt Gui 应用程序的主脚本中:
import sys
from PyQt5.QtWidgets import QApplication
def main():
...
app = QApplication(sys.argv)
window = MainWindow()
window.show
sys.exit(app.exec_())
这可能不是您想要处理屏幕属性的地方。
正如 Omkar76 所指出的,要从其他地方(例如在 MainWindow() 中)访问全局实例,请使用其 instance() 函数。然后,您可以使用其 primaryScreen 属性来访问 QScreen 对象提供的许多有用信息:
from PyQt5.QtWidgets import QApplication, QMainWindow
class MainWindow(QMainWindow):
def __init__(self):
# Window dimensions
app = QApplication.instance()
screen = app.primaryScreen()
geometry = screen.availableGeometry()
self.setFixedSize(geometry.width() * 0.8, geometry.height() * 0.7)
QDesktopWidget 已过时,因此应避免使用。
答案 4 :(得分:0)
from PyQt5.QtWidgets import QApplication, QWidget
self.desktop = QApplication.desktop()
self.screenRect = self.desktop.screenGeometry()
self.height = self.screenRect.height()
self.width = self.screenRect.width()
你可以在这里看到 - https://www.programmersought.com/article/58831562998/