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

Luc*_*nse 1 python user-interface qt pyqt matplotlib

不久前,我发布了一个问题,询问有关Tkinter后端的信息,但后来忘记了,但后来我意识到我正在使用pyqt后端。有解决办法吗?

原始问题:

因此,似乎matplotlib gui绘图(la plt.show())不适合监视器分辨率,并且在高分辨率屏幕上显得很小。是否有matplotlib + Pyqt修复程序,或者我在Windows设置中的某个地方摆弄了?

谢谢

例

小智 7

加载应用之前,而不是加载时。

插入:

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)
Run Code Online (Sandbox Code Playgroud)

像这样:

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__()
Run Code Online (Sandbox Code Playgroud)

如果仍然无法使用,请使用用户en var,而不是system en var。

QT_AUTO_SCREEN_SCALE_FACTOR=2 
Run Code Online (Sandbox Code Playgroud)

qt-5 / highdpi


Kog*_*oga 0

虽然我对 PyQt 没有太多经验,但在谷歌搜索时我发现了这个关于将 PyQT 窗口的窗口状态设置为最大化的问题。接受的答案说使用self.showMaximized()这样做。