Задать вопрос
Lord_of_Rings
@Lord_of_Rings
Дунадан - северный странник. Злой, но очень добрый

Почему неправильно отображается размер окна в PyQt5?

После преобразования .ui в .py размер главного окна отображается неправильно (очень маленькое), а все элементы внутри сжимаются. Как исправить? Использую Qt Design и там всё отображается нормально. Пробовал поэкспериментировать с размерами окна, но тоже не помогло.

P. S. PyQt5 последней версии, Qt Designer для версии 5.11
  • Вопрос задан
  • 172 просмотра
Подписаться 1 Средний 1 комментарий
Решения вопроса 1
@ArmYan77
Проблема, которую вы описываете, может возникать из-за различий в масштабировании DPI между Qt Designer и вашим приложением на PyQt5. Попробуйте установить масштаб DPI для вашего приложения в Python с использованием следующего кода:

import ctypes
from PyQt5 import uic, QtWidgets, QtCore

# Получаем масштаб DPI
user32 = ctypes.windll.user32
screen_dpi = user32.GetDpiForSystem()

# Устанавливаем масштаб DPI для приложения
QtWidgets.QApplication.setAttribute(QtCore.Qt.AA_EnableHighDpiScaling, True)
QtWidgets.QApplication.setAttribute(QtCore.Qt.AA_UseHighDpiPixmaps, True)

# Загружаем UI файл
Form, _ = uic.loadUiType("simple.ui")

# Определяем класс Ui
class Ui(QtWidgets.QMainWindow, Form):
def __init__(self):
super(Ui, self).__init__()
self.setupUi(self)
self.setGlobalDpiScaleFactor(screen_dpi / 96.0)

def setGlobalDpiScaleFactor(self, factor):
self.factor = factor
self.update()

def sizeHint(self):
size = super(Ui, self).sizeHint()
return size * self.factor

if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
w = Ui()
w.show()
sys.exit(app.exec_())
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
TosterModerator
@TosterModerator
Модератор Хабр Q&A
Неправильно отображается размер окна в PyQt5?

Да.
Ответ написан
@Awserer
Похоже, что у меня такая же проблема:
64513302cb982655837630.png
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы