Qt を使用してコード エディターを作成しています。x と y の位置 (行と列) を使用して textedit 内の単語を強調表示する方法を知りたいのですが、何かアイデアをお願いします。
この方法を使用すると、位置を取得して一部の文字を強調表示できますが、その後、他のテキストを表示したい場合、すべてのテキストが強調表示されました。
void MainWindow::Target(int 行、int 列)
{
QTextEdit* TempTextEdit = ui->textEdit;
QTextDocument* document = TempTextEdit->document();
QTextCursor カーソル (ドキュメント);
//cursor.beginEditBlock();
// カーソル.setPosition(0);
cursor.movePosition(QTextCursor::Down, QTextCursor::MoveAnchor, 行-1);
カーソル.setPosition(列);
cursor.setPosition(列+2, QTextCursor::KeepAnchor);
QTextCharFormat plainFormat(cursor.charFormat());
QTextCharFormat colorFormat = plainFormat;
colorFormat.setForeground(Qt::red);
colorFormat.setFontUnderline(true);
cursor.movePosition(QTextCursor::WordRight, QTextCursor::KeepAnchor);
cursor.mergeCharFormat(colorFormat);
// cursor.endEditBlock();
TempTextEdit->setTextCursor(カーソル);
}