본문 바로가기
  • ▒ 네모의 쉽게 배우는 네트워크 | 개발 ▒
파이썬 개발/Qypt5

PyQt5 - QLabel(레이블) 글자 잘림 현상 해결

by 너l모 2022. 8. 8.
반응형

※ 업무하면서 습득한 내용들을 정리해 놓은 포스팅입니다 :P 추가로 궁금하신 점은 댓글로 남겨주시고 필요한 자료 있으면 요청주세요! 잘못된 내용이 있으면 고쳐주시면 감사하겠습니다. 자료 퍼가실 때는 출처 남겨주세요!


 ο 목차

     


    ※ 코드 보는 방법 참고

    ㅇ 달러 기호($)가 있는 경우 -> 리눅스 터미널에서 CLI 명령어 입력

    ㅇ "=#" 기호가 있는 경우 -> psql 쉘에서 명령어 입력

    ㅇ 꺽쇠가 하나 있는 경우(>) -> 윈도우 명령 프롬프트(cmd)에서 명령어 입력

    ㅇ 꺽쇠가 세개 있는 경우(>>>) -> python 쉘에서 명령어 입력


     

    안녕하세요, 네모입니당 :D

    개발하는 중에 아래와 같이 QLabel 잘림 현상이 발생해서 해결 방법을 가져왔습니다

     

    (글자가 잘려요~)

     

    1. 문제 사례

    메인 윈도우에 QLabel 추가 중 위아래로 글자 잘림 현상 발생 

     

    2. 문제 원인

    QLabel 객체의 폰트 설정(폰트 사이즈, 두께, 폰트 종류 등)을 변경하면서 QLabel 객체 공간 바깥으로 폰트가 튀어나가 잘림 현상 발생

     

    3. 문제 해결 방법

    - 내부 폰트 사이즈에 맞게 QLabel 객체 크기도 조정 필요

    - 아래와 같이 QLabel에 adjustsize 설정 추가

    self.레이블객체명.adjustSize()

     

    4. 테스트 코드

    1) 글자가 잘려요~

    # -*- coding: utf-8 -*-
    
    from PyQt5 import QtCore, QtWidgets
    import sys
    
    class Main_Window(QtWidgets.QMainWindow) :
        def __init__(self):
            super().__init__()
            self.setWindowTitle('main_window')
            self.resize(800, 600)
            self.initUI()
    
        def initUI(self):
            self.lb_sbj = QtWidgets.QLabel(self)
            self.lb_sbj.setText('글자가 잘려요~')
            self.lb_sbj.setGeometry(QtCore.QRect(50, 40, 631, 18))
            font1 = self.lb_sbj.font()
            font1.setPointSize(20)
            font1.setFamily('Times New Roman')
            font1.setBold(True)
            self.lb_sbj.setFont(font1)
    
    if __name__ == "__main__":
        app = QtWidgets.QApplication(sys.argv)
        mw = Main_Window()
        mw.show()
        sys.exit(app.exec_())

     

    2) 이제 안잘려요~

    # -*- coding: utf-8 -*-
    
    from PyQt5 import QtCore, QtWidgets
    import sys
    
    class Main_Window(QtWidgets.QMainWindow) :
        def __init__(self):
            super().__init__()
            self.setWindowTitle('main_window')
            self.resize(800, 600)
            self.initUI()
    
        def initUI(self):
            self.lb_sbj = QtWidgets.QLabel(self)
            self.lb_sbj.setText('이제 안잘려요~')
            self.lb_sbj.setGeometry(QtCore.QRect(50, 40, 631, 18))
            font1 = self.lb_sbj.font()
            font1.setPointSize(20)
            font1.setFamily('Times New Roman')
            font1.setBold(True)
            self.lb_sbj.setFont(font1)
            self.lb_sbj.adjustSize()
    
    if __name__ == "__main__":
        app = QtWidgets.QApplication(sys.argv)
        mw = Main_Window()
        mw.show()
        sys.exit(app.exec_())

    ※ 좋아요와 구독은 큰 힘이 됩니다. 감사합니다. 

     

     

    반응형

    댓글