在paintEvent之后恢复TextCursor

时间:2012-09-08 15:27:09

标签: c++ qt events text-editor paint

我正在使用子类QPlainTextEditor,我正在使用自定义paintEvent来突出显示每一行。现在,这幅画有效,但是TextCursor消失了,更糟糕的是,我看不到打字的字母,即使在不应该画的行中也是如此。 我正在使用 QPainter painter((QAbstractScrollArea*)(viewport()));作为画家和 painter.fillRect(...);用于绘制行。 这些是正确的功能吗?

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

访问textcursor的代码是什么?它应该是这样的:

QTextCursor cursor = textEdit->textCursor();
cursor.insertText(QString(QChar::ObjectReplacementCharacter), svgCharFormat);
textEdit->setTextCursor(cursor); 

其中textEdit定义为:

QTextEdit *textEdit;

您可以使用以下命令获取/设置QTextDocument:

textEdit->document();
textEdit->setDocument(...);