translationInput
という形のQTextEdit
のフォームがあります。私はユーザーに編集機能を提供しようとしています。QTextEditの中にカーソルを移動
このQTextEdit
には、HTML形式のテキストが含まれます。私は、 "太字"、 "イタリック"のような一連のボタンを持っています。これは対応するタグをドキュメントに追加するはずです。テキストが選択されていないときにボタンを押すと、タグのペアを挿入するだけです(たとえば、<b></b>
)。テキストが選択されている場合は、そのタグを左右に表示します。
これは問題なく動作します。しかし、その後にカーソルをの後ろに置いて、カーソルを手動で再配置しなくても新しいタグを入力し続けることができます。デフォルトでは、カーソルは右のの後に表示されます(私の場合は、終了タグの直後にあります)の後に追加されたテキストです。
はここ斜体ボタンの私が持っているコードです:しかし、最後の行には何もしません
//getting the selected text(if any), and adding tags.
QString newText = ui.translationInput->textCursor().selectedText().prepend("<i>").append("</i>");
//Inserting the new-formed text into the edit
ui.translationInput->insertPlainText(newText);
//Returning focus to the edit
ui.translationInput->setFocus();
//!!! Here I want to move the cursor 4 characters left to place it before the </i> tag.
ui.translationInput->textCursor().movePosition(QTextCursor::Left, QTextCursor::MoveAnchor, 4);
、カーソルは、さえmovePosition()
戻りtrue
かかわらず、動きませんすべての操作が正常に完了したことを意味します。
私はQTextCursor::Left
の代わりにQTextCursor::PreviousCharacter
でこれをやってみましたが、編集にフォーカスを戻す前後に移動しようとしましたが、何も変わりません。
質問には、QTextEdit
の中にカーソルを移動するにはどうすればよいですか?
あなたが直接' moveCursorを() '使用してテキストカーソルを移動することができます:: MoveAnchor、4); ' – iliis
私は上記のコメントを答えに変えなければならないと思います。 –