У меня возникают проблемы с автоматическим изменением размеров виджетов в QDialog при изменении размера самого диалога. Я пытаюсь записать видео с веб-камеры с помощью python с помощью Qt Designer. При запуске QWidget на моем ноутбуке (например, QLabel, Text et c.) Размер подходит, потому что я назначаю его в соответствии с разрешением моего ноутбука. Но на другом компьютере с высоким разрешением размер Qwidget не фиксирован. Я не хочу редактировать каждый раз, когда запускаю программу на разных машинах. Я также пробовал использовать код mainWindow.showMaximized (). Но QLabel, Text et c. не взрослеют. И я нашел эту ссылку PyQt GUI size на экранах с высоким разрешением и попробовал согласно ответу Mr. Storm Shadow. Но я не знаю, как сделать руководство его ответа «И если это все еще не работает, в пользовательском en var, а не в системе en var. QT_AUTO_SCREEN_SCALE_FACTOR = 2». Я не знаю, означает, что «в пользовательском en var, а не system en var. QT_AUTO_SCREEN_SCALE_FACTOR = 2 ".
Ниже приведен код, когда я впервые пробую в qt5 и компилирую с python.
import sys
import PyQt5
from PyQt5 import QtCore, QtGui, uic, QtWidgets
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import QApplication
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)
QT_AUTO_SCREEN_SCALE_FACTOR = 1
class Ui_Dialog(object):
def setupUi(self, Dialog):
Dialog.setObjectName("Dialog")
Dialog.setWindowModality(QtCore.Qt.WindowModal)
Dialog.setEnabled(True)
rec = QApplication.desktop().availableGeometry()
height = rec.height();
width = rec.width();
Dialog.resize(width, height)
self.control_bt = QtWidgets.QPushButton(Dialog)
self.control_bt.setGeometry(QtCore.QRect(630, 540, 75, 23))
self.control_bt.setObjectName("control_bt")
self.image_label = QtWidgets.QLabel(Dialog)
self.image_label.setGeometry(QtCore.QRect(0, 60, 521, 691))
self.image_label.setFrameShape(QtWidgets.QFrame.Box)
self.image_label.setFrameShadow(QtWidgets.QFrame.Raised)
self.image_label.setLineWidth(7)
self.image_label.setText("")
self.image_label.setObjectName("image_label")
self.TEXT = QtWidgets.QTextBrowser(Dialog)
self.TEXT.setGeometry(QtCore.QRect(330, 0, 691, 51))
self.TEXT.setFrameShape(QtWidgets.QFrame.Box)
self.TEXT.setFrameShadow(QtWidgets.QFrame.Raised)
self.TEXT.setObjectName("TEXT")