Skip to main content
 首页 » 编程设计

python之高分辨率屏幕上的 PyQt GUI 大小

2025年05月04日30shihaiming

我发布了一个question前一段时间询问 Tkinter 后端,随后忘记了它,但我已经意识到我正在使用 pyqt 后端。有解决办法吗?

原始问题:

所以看起来 matplotlib gui 图(a la plt.show())不适应显示器分辨率并且在高分辨率屏幕上显得很小。是否有 matplotlib+Pyqt 修复,或者我是否在 Windows 设置中的某个地方摆弄?

谢谢

请您参考如下方法:

在应用加载之前,而不是在加载期间。

插入:

if hasattr(QtCore.Qt, 'AA_EnableHighDpiScaling'): 
    PyQt5.QtWidgets.QApplication.setAttribute(QtCore.Qt.AA_EnableHighDpiScaling, True) 
 
if hasattr(QtCore.Qt, 'AA_UseHighDpiPixmaps'): 
    PyQt5.QtWidgets.QApplication.setAttribute(QtCore.Qt.AA_UseHighDpiPixmaps, True) 

像这样:

import PyQt5 
from PyQt5 import QtCore, QtGui, uic, QtWidgets 
from PyQt5.QtWidgets import QWidget 
 
if hasattr(QtCore.Qt, 'AA_EnableHighDpiScaling'): 
    PyQt5.QtWidgets.QApplication.setAttribute(QtCore.Qt.AA_EnableHighDpiScaling, True) 
 
if hasattr(QtCore.Qt, 'AA_UseHighDpiPixmaps'): 
    PyQt5.QtWidgets.QApplication.setAttribute(QtCore.Qt.AA_UseHighDpiPixmaps, True) 
 
 
class MyWindow(PyQt5.QtWidgets.QMainWindow): 
    def __init__(self): 
        super(MyWindow, self).__init__() 

如果仍然不起作用,请在用户 en var 而不是系统 en var 中。

QT_AUTO_SCREEN_SCALE_FACTOR=2  

qt-5/highdpi