6

私は現在、Qt4 を使用して仕事用のアプリケーションを開発している学生プログラマーです。数式エディタを作成していますが、 QTextEditフィールド内の文字列を強調表示しようとすると問題が発生します。QTextEdit 文字列を解析し、エラーが発生した場所の開始と終了の整数を返す関数があります。私の最初の戦略は、これら 2 つのポイントで HTML タグを使用してエラーを強調することでした。残念ながら、html のタグ付けと方程式の構文に問題があるようです。

私が必要だと思うのは、これら 2 つのインデックスの間に背景色を設定するために Qt のライブラリに依存する戦略です。QSyntaxHighlighterを探し始めました。ただし、これは、定義済みの一連の法則を使用して強調表示するためのものであり、a と b の間で何かを取得して背景色を設定するためのものではないと思います。構文ハイライターを使用できる場合は、ドキュメントを読んで何も見つからなかったので、例または参照を提供してください。

事前に助けてくれてありがとう!

PS HTMLの互換性の問題を強調するだけです。html は複数の < および > 記号が使用されているために問題になります。

4

1 に答える 1

13

QTextCursorとを使用できますQTextCharFormat

QTextEdit *edit = new QTextEdit;
...
int begin = ...
int end = ...
...

QTextCharFormat fmt;
fmt.setBackground(Qt::yellow);

QTextCursor cursor(edit->document());
cursor.setPosition(begin, QTextCursor::MoveAnchor);
cursor.setPosition(end, QTextCursor::KeepAnchor);
cursor.setCharFormat(fmt);
于 2013-02-15T06:18:05.783 に答える