Appia의 IT세상

파이썬[Python GUI, PyQt5 Tutorial 006] PyQt5 라벨(QLabel)생성하기 - 텍스트 출력하기 본문

Python/Python PyQt5 (GUI)

파이썬[Python GUI, PyQt5 Tutorial 006] PyQt5 라벨(QLabel)생성하기 - 텍스트 출력하기

Appia 2020. 6. 15. 07:05
반응형

파이썬[Python GUI, PyQt5 Tutorial 006] PyQt5 라벨(QLabel)생성하기 - 텍스트 출력하기

 

이번 포스팅에서는 PyQt5에서 라벨(QLabel)을 생성하는 방법에 대해서 살펴보겠습니다. 라벨(QLabel)의 경우 보통 텍스트나 이미지를 표현하기 위해서 사용됩니다. 그럼 라벨(QLabel)에 간단한 텍스트를 출력하는 코드를 작성해보도록 하겠습니다. 

<example>

import sys
 
from PyQt5.QtWidgets import QApplication, QWidget, QLabel
 
 
class QtGUI(QWidget):
 
 
    def __init__(self):
    
        super().__init__()
        
        self.setWindowTitle("Appia Qt GUI")
        
        self.resize(300300)
        
        label1 = QLabel('First Label', self)
        
        label1.move(10,10)
        
        font1 = label1.font()
        
        font1.setPointSize(20)
        
        font1.setBold(True)
        
        label1.setFont(font1)
 
        label2 = QLabel('Two Label', self)
        
        label2.move(1050)
 
        self.setWindowTitle("Appia Qt GUI")
        
        self.show()
 
 
if __name__ == '__main__':
 
    app = QApplication(sys.argv)
    
    ex = QtGUI()
    
    app.exec_()
cs

 

위의 코드를 실행하면 다음과 같은 결과가 나옵니다. 

그럼 위의 코드를 바탕으로 간단히 설명을 해보도록 하겠습니다. 

        label1 = QLabel('First Label', self)
        
        label1.move(10,10)
 
        font1 = label1.font()
 
        font1.setPointSize(20)
 
        font1.setBold(True)
 
        label1.setFont(font1)
cs

 

위의 코드에서 QLabel를 바탕으로 라벨을 생성합니다. 여기에서 'First Label'라는 텍스트를 입력합니다. 그리고, move메소드를 통해서 위젯에서 특정 위치로 이동 시킵니다. 

 

그리고, label1.font()를 통해 글꼴등의 편집할 수 있는 부분들에 대한 클래스를 생성합니다. 그리고 setPointSize(num)를 통해서 글자의 크기를 설정합니다. 또한 setBold(True/False)를 통해서 글자을 진하게 하는 설정을 합니다. 그리고 나서 반드시 label1에 연결해야 합니다. label1.setFont(font1)을 통해서 font1에 선언된 글꼴등의 설정을 label1에 연결합니다. 

 

그럼 앞에서 본 버튼과을 이용해서 버튼(QPushButton)을 클릭시, 버튼에 있는 글자를 라벨(QLabel)에 출력하는 부분을 작성해보겠습니다. 

<example>

import sys
 
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QPushButton
 
 
class QtGUI(QWidget):
 
 
    def __init__(self):
    
        super().__init__()
        
        self.setWindowTitle("Appia Qt GUI")
        
        self.resize(300300)
        
        self.intialL1 = 'First Label'
        
        self.intialL2 = 'Two Label'
 
        label1 = QLabel(self.intialL1 , self)
        
        label1.move(10,10)
 
        label2 = QLabel(self.intialL2, self)
        
        label2.move(1050)
 
        button = QPushButton('Button', self)
        
        button.move(10110)
        
        button.clicked.connect(lambda: self.print_label(button,label1))
 
        button1 = QPushButton('Button1', self)
        
        button1.move(10140)
        
        button1.clicked.connect(lambda: self.print_label(button1,label2))
 
        button2 = QPushButton('Refresh', self)
        
        button2.move(10170)
        
        button2.clicked.connect(lambda: self.refrsh_all(label1, label2, self.intialL1,self.intialL2))
 
        self.setWindowTitle("Appia Qt GUI")
        
        self.show()
 
 
    def print_label(self, vbutton,vlabel):
    
        vlabel.setText(vbutton.text())
 
 
    def refrsh_all(self,l1, l2, initv1, initv2):
    
        l1.setText(initv1)
        
        l2.setText(initv2)
 
 
if __name__ == '__main__':
 
    app = QApplication(sys.argv)
    
    ex = QtGUI()
    
    app.exec_()
cs

 

 

위의 코드를 실행하면 다음과 같은 결과가 나타납니다. 

위의 GUI에서 Button을 클릭하면, First Label위치에 Button에 입력된 Button이라는 텍스트가 출력되고, Button1을 클릭하며느 Two Label에 Button1이 출력됩니다. Refresh를 클릭하면, 최초 출력된 First Label, Two Label이 출력이 됩니다. 

일단, 위의 부분을 Refresh라는 부분을 구현하기 위해서 초기값을 별도 영역으로 저장해두고 Refresh를 입력하면 각 라벨(QLabel)에 초기값으로 원상 복구 하게 됩니다. 

 

오늘은 파이썬[Python GUI, PyQt5 Tutorial 006] PyQt5 라벨(QLabel)생성하기라는 주제로 라벨에 텍스트를 출력하고, 버튼을 통해 라벨(QLabel)에 값을 업데이틑 하는 방법에 대해서 살펴봤습니다.

 

혹시 궁금하신 점이나 문의 사항이 있으시면 언제든지 댓글 및 방명록에 글 남겨 주시길 바랍니다. 감사합니다. 

반응형
Comments