Pyside6 Custom QTextEdit

2022. 5. 30. 22:27IT

Python 뿐만 아니라 UI가 들어간 일을 하다보면 나만의 디자인이 적용된 QTextEdit가 필요할 수 있다. 비단 QTextEdit뿐만 아니라 모든 위젯들이 그럴 수 있겠다. 아래 그림에서 실행된 모습을 보면 전체가 QTextEdit이고 그 안에 노란네모와 빨간 라인이 그려진 것을 볼 수 있다. 

이렇게 Customize를 위해서는 QTextEdit을 상속받아서 paintEvent를 overriding 하면 된다. 

 

 

코드는 다음에

import sys
from PySide6.QtWidgets import *
from PySide6.QtGui import QPainter, QColor

class MyTextEdit(QTextEdit):

    def paintEvent(self, event):
        painter = QPainter(self.viewport())
        painter.setPen(QColor(0, 255, 0))
        painter.setBrush(QColor(255, 250, 0))
        painter.drawRect(10, 10, 100, 100)
        painter.setPen(QColor(255, 0, 0))
        painter.drawLine(0, 10, 100, 100)
        QTextEdit.paintEvent(self, event)

app = QApplication(sys.argv)
textEdit = MyTextEdit()
textEdit.show()

sys.exit(app.exec())
반응형

'IT' 카테고리의 다른 글

Python obfuscation (난독화)  (0) 2022.07.05
Python 얕은 복사와 깊은 복사  (0) 2022.06.17
Python Menu & Toolbar  (0) 2022.05.25
Pyside6 window resize & layout  (0) 2022.05.22
PySide6 Customized Window  (0) 2022.05.21