5
में QPaintEvents को ओवरराइड करना मैं एक टेक्स्ट एडिट विजेट बनाने की कोशिश कर रहा हूं जिसमें एक डिलीमीटर लाइन होगी। एक शुरुआत के रूप में, मैं (एक QTextEdit
का एक उपवर्ग के रूप में) एक MyTextEdit
वर्ग बना लिया है और इसकी paintEvent()
विधि अधिरोहित:PyQt
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
...
मैं क्या गलत कर रहा हूं?
दिलचस्प, हां, मैं बाहर क्यों कि काम कर रहा था समझ नहीं सकता है। वह व्यूपोर्ट हमेशा मुझे खराब कर देता है। धन्यवाद! –