본문 바로가기
GUI 튜토리얼/PySide6 # Qt의 원조가 돌아왔다!

[PySide6]Qt 기본 중의 기본 위젯, QLabel 사용방법

by 일코 2021. 7. 9.

출처 : https://www.brokeronline.es/plataformas-de-trading/ctrader/

천리길도 한걸음부터

저도 Qt를 공부하면서 무료하거나 지루함이 찾아올 때면 구글 검색창에 "The best qt design examples" 같은 문구로 검색을 하고 저런 프로그램 이미지들을 구경하곤 합니다. 기초교재의 예제들은 정말 재미가 없거든요ㅜ 완성해도 어딘가 멋지지 않고요. 그렇지만, 천리길도 한걸음부터니까요. 하나씩 차근차근 배운다는 느낌으로 공부해봅시다.

이번 시간에는 가장 쉬운 위젯, QLabel을 다뤄보겠습니다.

사실 지난 포스팅 중에 QLabel과 QLineEdit 위젯 두 가지를 같이 진행해본 예제가 있었습니다.

 

0. PySide6의 시그널-슬롯 활용예제: 다른 위젯을 슬롯으로 연결하기

PySide 시그널-슬롯 활용예제2 QLineEdit의 textChanged 시그널을 QLabel.setText 슬롯과 연결하기 안녕하세요? 이번 포스팅을 시작하기 전에 지난 포스팅에서 작성했던 코드를 최대한 간단히 요약해서 다른

www.martinii.fun

시그널과 슬롯, 그리고 컨테이너라는 중요한 개념들을 설명하면서, 제대로 설명해놓지도 않은 위젯 두 개를 떡하니 붙여놓고 코드만 보여드려놨으니, 포스팅을 읽으면서 공부하시는 분들 입장에서는, 뭔가 귀찮아서 대충 짚고 넘어간다는 느낌이 드실 수도 있겠다는 생각이 들었습니다. Qt GUI창의 기본적인 틀과 개념을 간단히 설명드리려던 건데 제가 욕심이 좀 과하지 않았나 싶습니다. 그래서, 틈틈이 각 위젯들에 관한 설명도 드리고, 조작해보는 예제도 보여드리고 싶습니다.

 

QLabel은 Qt내에서 사용할 수 있는 모든 위젯들 중 가장 심플합니다. 하지만 어떤 GUI에도 빠지지 않는 위젯인데요. 상단의 예제 이미지 중에서는 어느 부분이 QLabel일까요? 바로,

어디에나 빠질 수 없는 QLabel의 존재감

붉게 표시된 부분들이 QLabel입니다. 위처럼 사이즈나, 정렬상태 등을 조정할 수도 있으며, setText 메서드를 사용해서 문자열 값을 수시로 수정할 수도 있습니다. 그럼 심도있게 한 번 알아봅시다.

전체 코드

import sys

from PySide6.QtCore import Qt
from PySide6.QtWidgets import QApplication, QLabel, QMainWindow


class MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()

        self.setWindowTitle("QLabel 예제")

        widget = QLabel("<=><= >= == != Hello World!")

        font = widget.font()
        font.setPointSize(30)
        font.setBold(True)
        font.setItalic(False)
        font.setFamily("D2Coding Ligature")

        widget.setFont(font)
        widget.setAlignment(Qt.AlignHCenter | Qt.AlignVCenter)

        self.setCentralWidget(widget)


app = QApplication(sys.argv)

window = MainWindow()
window.show()

app.exec()  # 버전 6.1.2 이상 버전부터는 기존의 exec_() 대신 exec()를 사용할 것을 권함

시연화면

QLabel 예제(폰트 : D2Coding Ligature by Naver)

QLabel 사용방법

1. 생성

QLabel을 생성하는 방법은 간단히 아래 코드 한 줄을 추가하는 것입니다.

widget = QLabel("Hello world!")

2. QLabel 내 텍스트 수정

QLabel 내의 텍스트를 수정하려면 아래와 같이 setText 메서드를 사용하거나, 특정 시그널을 setText와 연결해서 연동하는 것입니다. 지난 포스팅 말미에서 시그널-슬롯 예제를 보여드린 적이 있습니다.

widget = QLabel("foo")
widget.setText("bar")

3. 구체적인 코드설명

예상보다 포스팅 분량이 길어질 것 같아서, 한 템포 쉬고 다음 포스팅에서 이어서 작성하겠습니다. Qt플래그와 폰트, 그리고 이미지를 QLabel로 붙이는 QLabel.setPixmap 메서드 등에 대해서 설명드리겠습니다.

 

긴 글 읽어주셔서 감사합니다.

행복한 하루 되세요!

 


요즘 근황

혹시 집에서 대량으로  빅토리아트레비 같은 탄산수, 대량으로 사놓고 드시는 분 계세요? 저도 그러고 있었는데,

최근 건강검진을 앞두고 식도염, 위산과다나 위궤양 같은 느낌들이 있어서 찾아봤더니 탄산수의 부작용 하는 뉴스글들이 나오더라고요ㅜ..

대안이 없을까 하다가 저칼로리 이온음료가 쿠팡 골드박스에 떠있길래 한 번 주문을 해봤습니다..

근데 아니나다를까ㅜㅜㅜ 도착하기 전에 이온음료의 부작용 하고 검색해보니 이런 글도 뜨는군요ㅜㅜㅜㅜㅜㅜㅜㅜ

물이나 마셔야 하는 걸까 생각이 드는 밤입니다.

 

 

 


donaricano-btn

댓글