我不久前发布了一个问题,询问有关 Tkinter 后端的问题,后来忘记了,但后来我意识到我正在使用 pyqt 后端。有解决办法吗?
原问题:
所以看来 matplotlib gui 图(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
虽然我对 PyQt 没有太多经验,但在谷歌搜索后我发现了this关于将 PyQT 窗口的窗口状态设置为最大化的问题。接受的答案说使用
self.showMaximized()
来做到这一点。
对于Python,这对我有用:
if hasattr(Qt, 'AA_EnableHighDpiScaling'):
QApplication.setAttribute(Qt.AA_EnableHighDpiScaling, True)
if hasattr(Qt, 'AA_UseHighDpiPixmaps'):
QApplication.setAttribute(Qt.AA_UseHighDpiPixmaps, True)
if __name__ == '__main__':
app = QApplication(sys.argv)
print(f"Using AA_EnableHighDpiScaling > {QApplication.testAttribute(Qt.AA_EnableHighDpiScaling)}")
print(f"Using AA_UseHighDpiPixmaps > {QApplication.testAttribute(Qt.AA_UseHighDpiPixmaps)}")
# your window here
app.exec()
要扩展整个应用程序,请添加以下行:
import os
os.environ["QT_SCALE_FACTOR"] = "1.2" # Set scale to 120%