3

我试图突出显示在 QPlainTextEdit 小部件中找到的所有字符串,但 find() 只会返回第一个结果。下面的代码不起作用,为什么?

(textview 是从 QPlainTextEdit 派生的一个类)

并且请不要让我使用 QSyntaxHighlighter 来设置颜色,它是不同的。

QList<QTextEdit::ExtraSelection> extraSelections;
textview->moveCursor(QTextCursor::Start);
while ( textview->find(key) )
{
    QTextEdit::ExtraSelection extra;
    extra.cursor = textview->textCursor();
    extraSelections.append(extra);
}

textview->setExtraSelections(extraSelections);
4

1 回答 1

4

提供更多关于什么不起作用的细节通常很好:)

  • 你试过什么文字QPlainTextEdit
  • 你在用什么key
  • 您能否阐明find使用上述前两项中指定的文本运行时会发现什么?
  • 你真的会得到一个额外的选择列表吗?
  • 缺乏可见的突出显示是唯一不起作用的吗?

我尝试了您的代码,它似乎正确地找到了所有文本实例。问题似乎是您实际上并没有formatextra. 设置好后extra.cursor,试试设置extra.format.fontUnderline(true);看看有没有效果。

于 2011-10-02T03:25:28.987 回答