gpt4 book ai didi

qt - 在PyQt中覆盖QPaintEvents

转载 作者:行者123 更新时间:2023-12-04 13:26:06 31 4
gpt4 key购买 nike

我正在尝试创建一个文本编辑器小部件,该小部件将有一个定界符行。首先,我创建了一个MyTextEdit类(作为QTextEdit的子类),并覆盖了其paintEvent()方法:

import sys
from PyQt4.QtGui import QApplication, QTextEdit, QPainter

class MyTextEdit(QTextEdit):
"""A TextEdit widget derived from QTextEdit and implementing its
own paintEvent"""

def paintEvent(self, event):
painter = QPainter(self)
painter.drawLine(0, 10, 10, 10)
QTextEdit.paintEvent(self, event)

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

sys.exit(app.exec_())

尝试执行此代码,我收到 很多的以下错误:
QPainter::begin: Widget painting can only begin as a result of a paintEvent
QPainter::begin: Widget painting can only begin as a result of a paintEvent
...

我究竟做错了什么?

最佳答案

如果小部件具有viewport,则必须将其传递给QPainter构造函数:

painter = QPainter(self.viewport())

关于qt - 在PyQt中覆盖QPaintEvents,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12226930/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com