프로그래밍/Python

[Python] Qt5 UI의 폰트 및 컨트롤이 깨져서 표시되는 문제

채윤아빠 2023. 3. 28. 08:47
728x90
반응형

개요

마소의 서피스 노트북을 이동할 때 이용하고 있는데, 동일한 UI 소스를 실행했는데, PC에서는 정상적으로 표시되던 UI가 서피스 노트북에서는 다음과 같이 원래 모습과 다르게 나오는 현상이 발생하였습니다.


해결 방법

가장 손쉬운 방법은 프로그램의 메인으로 가장 처음 실행되는 소스에 다음 환경설정 변수를 추가하는 방법입니다.

from os import environ

environ['QT_AUTO_SCREEN_SCALE_FACTOR'] = '1'  # 모니터 해상도에 따른 폰트 및 컨트롤 크기 자동 조정

두 번째 방법은 Qt 설정을 직접 변경하는 방법입니다.

from PyQt5 import QtWidgets, QtCore, QtGui

QtWidgets.QApplication.setAttribute(QtCore.Qt.AA_EnableHighDpiScaling, True)
QtWidgets.QApplication.setAttribute(QtCore.Qt.AA_UseHighDpiPixmaps, True)

위와 같이 설정 후에는 다음과 같이 폼의 컨트롤들이 정상적으로 표시됩니다.

참고자료