HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
📟
PyQt 5 Lecture
/
🍊
001 QFont (텍스트 넣기)
🍊

001 QFont (텍스트 넣기)

1. 코드2. 상세 내용3. 실행 화면

1. 코드

2. 상세 내용

순서대로 따라가시다 보면 painEvent를 호출하지 않았다는 사실을 알게 되실 겁니다. 그런데 어떻게 painEvent는 호출되고 있었던 것일까요? 그 이유는 painEvent는 이미 정의되어 있는 메서드이고, 위젯은 자신을 다시 그릴 때 이 함수를 호출하기 때문입니다.
notion image
widget에 Virtual functions에 가보면 이미 paintEvent가 정의되어 있는 것을 확인할 수 있습니다. 링크는 아래 있습니다.
QWidget - Qt for Python
The widget is the atom of the user interface: it receives mouse, keyboard and other events from the window system, and paints a representation of itself on the screen. Every widget is rectangular, and they are sorted in a Z-order. A widget is clipped by its parent and by the widgets in front of it.
QWidget - Qt for Python
https://doc.qt.io/qtforpython/PySide2/QtWidgets/QWidget.html#custom-widgets-and-painting
QWidget - Qt for Python
drawText는 우리가 정의한 함수입니다. paintEvent에서 호출하고 있는 것을 볼 수 있습니다.
 
  • QPainter : 그림판 같은 역할을 하는 모듈입니다.
  • QColor : Color와 관련된 모듈입니다. 0부터 255 값으로 된 RGB 값으로 줄 수도 있고, color name으로도 줄 수 있으며, hex값으로도 줄 수 있습니다. color에 대한 기본적인 개념을 잡고 싶으신 분은 아래 문서를 참고하세요.
HTML Color Codes
Find that perfect color with our color picker and discover beautiful color harmonies, tints, shades and tones; input Hex color codes, RGB and HSL values, and generate HTML, CSS and SCSS styles. Looking for some already great color combinations?
HTML Color Codes
https://htmlcolorcodes.com/
HTML Color Codes
QColor - Qt for Python
A color is normally specified in terms of RGB (red, green, and blue) components, but it is also possible to specify it in terms of HSV (hue, saturation, and value) and CMYK (cyan, magenta, yellow and black) components. In addition a color can be specified using a color name.
QColor - Qt for Python
https://doc.qt.io/qtforpython/PySide2/QtGui/QColor.html
QColor - Qt for Python
 
  • QFont : 폰트와 같은 설정을 할 수 있습니다. 굵기와 폰트 스타일 등을 지정할 수 있습니다. 상세 설정은 공식문서를 참고바랍니다.
QFont - Qt for Python
When you create a object you specify various attributes that you want the font to have. Qt will use the font with the specified attributes, or if no matching font exists, Qt will use the closest matching installed font. The attributes of the font that is actually used are retrievable from a object.
QFont - Qt for Python
https://doc.qt.io/qtforpython/PySide2/QtGui/QFont.html
 

3. 실행 화면

 
notion image
 
import sys from PyQt5.QtWidgets import QApplication, QWidget from PyQt5.QtGui import QPainter, QColor, QFont from PyQt5.QtCore import Qt class 텍스트넣기(QWidget): def __init__(self): super().__init__() self.UI초기화() def UI초기화(self): self.text = 'Hello Weniv World!!' self.setGeometry(150, 300, 250, 500) self.setWindowTitle('QPainter!') self.show() def paintEvent(self, event): paint = QPainter() paint.begin(self) self.drawText(event, paint) paint.end() def drawText(self, event, paint): paint.setPen(QColor(10, 10, 10)) paint.setFont(QFont('Decorative', 10)) paint.drawText(130, 100, 'hello world!!') paint.drawText(event.rect(), Qt.AlignCenter, self.text) 프로그램무한반복 = QApplication(sys.argv) 실행인스턴스 = 텍스트넣기() 프로그램무한반복.exec_()