1

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(カーソル);

}

4

1 に答える 1