[英]Problems overriding paintEvent with PySide
我已經將QPlainTextEdit類子類化,並嘗試覆蓋paintEvent函數,以便我可以在其上繪制行號區域。
def paintEvent(self, e):
super(CodeEditor, self).paintEvent(e)
qp = QtGui.QPainter()
qp.begin(self)
self.drawLineNoArea(qp)
qp.end()
當程序運行時,我得到這個輸出:
QPainter::begin: Widget painting can only begin as a result of a paintEvent
QPainter::setPen: Painter not active
QPainter::end: Painter not active, aborted
我最好的猜測是該功能沒有被正確覆蓋,但我真的不確定。 誰能告訴我哪里出錯了?
您必須將視口傳遞給QPainter,與列表和樹一樣。
def paintEvent(self, e):
super(CodeEditor, self).paintEvent(e)
qp = QtGui.QPainter()
qp.begin(self.viewport())
self.drawLineNoArea(qp)
qp.end()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.