PyQt5 튜토리얼-라벨

Jinku Hu 2023년1월30일
  1. PyQt5 라벨 위젯
  2. PyQt5 QLabel 폰트 설정
  3. PyQt5 라벨 정렬
PyQt5 튜토리얼-라벨

이 튜토리얼에서 PyQt5 라벨 위젯 QLabel 을 사용하는 법을 배웁니다.

PyQt5 라벨 위젯

우리는 창에 두 개의 레이블을 추가 할 것입니다.이 레이블 중 하나는 일부 텍스트를 보유하고 해당 레이블 중 하나는 이미지를 보유합니다.

import sys
from PyQt5 import QtWidgets, QtGui


def basicWindow():
    app = QtWidgets.QApplication(sys.argv)
    windowExample = QtWidgets.QWidget()
    labelA = QtWidgets.QLabel(windowExample)
    labelB = QtWidgets.QLabel(windowExample)
    labelA.setText("Label Example")
    labelB.setPixmap(QtGui.QPixmap("python.jpg"))
    windowExample.setWindowTitle("Label Example")
    windowExample.setGeometry(100, 100, 300, 200)
    labelA.move(100, 40)
    labelB.move(120, 120)
    windowExample.show()
    sys.exit(app.exec_())


basicWindow()

어디,

labelA = QtWidgets.QLabel(w)

첫 번째 레이블 labelAQtWidgets.QtLabel 이고 QtWidgets-w 는 레이블 labelA 가 창 w 에 추가되었음을 프로그램에 알려주기 때문에 괄호 안에 있습니다.

labelA.setText("Label Example")

labelA.setText 는 레이블의 텍스트를 설정합니다.

windowExample.setGeometry(100, 100, 300, 200)

창 크기를(300, 200)으로 설정하고 왼쪽 상단 모서리 좌표를(100, 100)으로 설정합니다. 마지막 섹션에서 setGeometry 설명을 참조 할 수 있습니다.

labelA.move(100, 40)
labelB.move(120, 120)

move()메소드는 라벨을 좌우로 움직입니다. labelA.move(100, 40)과 같이 labelA 를 창의 왼쪽 위 모서리를 기준으로(100, 40)의 좌표로 이동합니다.

labelB.setPixmap(QtGui.QPixmap("globe.png"))

labelB 에 이미지를 표시합니다. QPixmapQtGui 의 모듈이며 Qt 의 이미지를 가져옵니다.

PyQt5 라벨

PyQt5 QLabel 폰트 설정

위의 예에서는 레이블 위젯에서 기본 글꼴을 사용하며 레이블 텍스트의 크기, 무게 및 글꼴 모음과 같은 기본 글꼴을 지정할 수 있습니다.

import sys
from PyQt5 import QtWidgets, QtGui


def basicWindow():
    app = QtWidgets.QApplication(sys.argv)
    windowExample = QtWidgets.QWidget()
    labelA = QtWidgets.QLabel(windowExample)
    labelB = QtWidgets.QLabel(windowExample)
    labelA.setText("Times Font")
    labelA.setFont(QtGui.QFont("Times", 12, QtGui.QFont.Bold))
    labelB.setText("Arial Font")
    labelB.setFont(QtGui.QFont("Arial", 14, QtGui.QFont.Black))
    windowExample.setWindowTitle("Label Example")
    windowExample.setGeometry(100, 100, 300, 200)
    labelA.move(100, 40)
    labelB.move(100, 120)
    windowExample.show()
    sys.exit(app.exec_())


basicWindow()
labelA.setFont(QtGui.QFont("Times", 12, QtGui.QFont.Bold))

setFont()메소드는 레이블의 글꼴을 설정합니다. QFont 클래스는 특정 속성을 가진 글꼴을 지정합니다.

PyQt5 레이블 설정 글꼴

PyQt5 라벨 정렬

레이블 텍스트는 기본적으로 왼쪽 가장자리에 정렬되며이 속성은 QLabel.setAlignment()메서드를 사용하여 수정할 수 있습니다.

import sys
from PyQt5 import QtWidgets, QtGui, QtCore


def basicWindow():
    app = QtWidgets.QApplication(sys.argv)
    windowExample = QtWidgets.QWidget()

    labelLeft = QtWidgets.QLabel(windowExample)
    labelRight = QtWidgets.QLabel(windowExample)
    labelCenter = QtWidgets.QLabel(windowExample)

    labelLeft.setText("Left Align")
    labelRight.setText("Right Align")
    labelCenter.setText("Center Align")

    windowExample.setWindowTitle("Label Align Example")
    windowExample.setGeometry(100, 100, 300, 200)

    labelLeft.setFixedWidth(160)
    labelRight.setFixedWidth(160)
    labelCenter.setFixedWidth(160)

    labelLeft.setStyleSheet("border-radius: 25px;border: 1px solid black;")
    labelRight.setStyleSheet("border-radius: 25px;border: 1px solid black;")
    labelCenter.setStyleSheet("border-radius: 25px;border: 1px solid black;")

    labelLeft.setAlignment(QtCore.Qt.AlignLeft)
    labelRight.setAlignment(QtCore.Qt.AlignRight)
    labelCenter.setAlignment(QtCore.Qt.AlignCenter)

    labelLeft.move(80, 40)
    labelRight.move(80, 80)
    labelCenter.move(80, 120)

    windowExample.show()
    sys.exit(app.exec_())


basicWindow()
labelLeft.setFixedWidth(160)
labelRight.setFixedWidth(160)
labelCenter.setFixedWidth(160)

고정 너비를 세 개의 레이블로 설정합니다. 그렇지 않으면 레이블 너비가 레이블 텍스트 길이에 따라 자동으로 설정됩니다.

labelLeft.setStyleSheet("border-radius: 25px;border: 1px solid black;")

CSS 와 비슷한 스타일 시트를 사용하여 PyQt5 위젯의 스타일을 설정할 수 있습니다. 여기에서 레이블의 테두리는 검은 색으로 설정되고 테두리는 1px 이며 테두리 반경은 25px 로 지정됩니다.

labelLeft.setAlignment(QtCore.Qt.AlignLeft)
labelRight.setAlignment(QtCore.Qt.AlignRight)
labelCenter.setAlignment(QtCore.Qt.AlignCenter)

위젯의 정렬 속성은 setAlignment 메소드에 의해 설정되며 옵션은 PyQt5.QtCore.Qt 모듈에 있습니다.

  • PyQt5.QtCore.Qt.AlignLeft
  • PyQt5.QtCore.Qt.AlignRight
  • PyQt5.QtCore.Qt.AlignCenter

아래 이미지에서 볼 수 있듯이 레이블은 정렬 속성에 따라 정렬됩니다.

PyQt5 라벨 정렬

작가: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.

LinkedIn Facebook