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())