728x90
반응형
개요
위젯을 상속받은 사용자 위젯의 배경을 커스터마이징하여 그리는 방법을 알아보도록 하겠습니다.
배경 그리기
Qt에서 배경 등은 QPainter 객체를 통하여 그릴 수 있습니다.
이를 위해서는 paintEvent() 이벤트 처리 함수를 오버라이드 합니다.
다음 예제는 paintEvent() 함수를 override하고 간단하게 배경을 붉은색으로 칠하는 예제입니다.
import sys
from PyQt5.QtWidgets import QWidget, QApplication
from PyQt5.QtGui import QPainter, QColor, QPen
class MyWidget(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setGeometry(300, 300, 400, 400)
self.setWindowTitle('QtWidget 배경 그리기')
self.show()
def paintEvent(self, event):
qp = QPainter()
qp.begin(self)
self.drawBackground(qp)
qp.end()
def drawBackground(self, qp):
qp.setPen(QColor(255, 255, 255)) # 흰색 펜 설정
qp.setBrush(QColor(255, 20, 20)) # 붉은색 브러시 설정
qp.drawRect(self.rect()) # 위젯 전체에 사각형 그리기
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = MyWidget()
sys.exit(app.exec_())
위 코드를 실행하면 다음과 같은 창이 표시됩니다.
참고자료
- "[PyQt5] QPainter를 이용한 다양한 그래픽":http://www.gisdeveloper.co.kr/?p=8360
'프로그래밍 > Python' 카테고리의 다른 글
[python] RGBA 형식의 이미지 찾기 (0) | 2024.05.21 |
---|---|
[python] 아스키가 아닌 문자가 포함된 이미지 파일 로딩하기 (imread) (0) | 2024.05.13 |
[Qt] 창을 전체화면으로 표시하기 (0) | 2023.11.25 |
[python] itertools.pairwise() 함수 사용법 (0) | 2023.11.21 |
[Python] Flask 서버 멀티 스레드로 구동하기 (0) | 2023.11.10 |