QTextEdit文字編輯框的游標移動

2021-07-31 23:59:17 字數 934 閱讀 5471

1.問題描述

2.解決辦法

呼叫qtextedit類的成員函式「movecursor」可以設定游標的位置。其函式原型如下:

void qtextedit::movecursor ( qtextcursor::moveoperation operation, qtextcursor::movemode mode = qtextcursor::moveanchor )

其中,引數operation是指定游標的操作型別,可選的值有:up,down,left,right,end,endofline等等,分別對應不同的動作,這個很好理解。我們這裡是想讓游標移動到文字編輯框的末尾,因此選擇引數end。

引數mode光從字面上的意思,可能不太容易知道它的作用。通過qt自帶的幫助文件,可以得到下面的資訊:

同時,還有這樣一句描述「if the anchor() is kept where it is and the position() is moved, the text in between will be selected」。通過這些資訊,可以推測出,選擇引數keepanchor的話,在游標移動的同時,會選中被游標掠過的文字,類似於滑鼠的拖動動作。通過試驗,驗證了這個推測。下圖是選擇引數keepanchor的效果:

這裡我們不想讓文字被選中,所以選擇了引數moveanchor。

3.總結

通過呼叫如下語句,可以將游標移動到文字末尾。其他型別的文字控制項也是同理,不再贅述。

ui->qtextedit_rx->movecursor(qtextcursor::end, qtextcursor::moveanchor);

文字編輯框

在介面程式設計中,文字編輯框是使用頻率最高的控制項之一,為了方便操作,mfc提供了cedit類來管理文字編輯框。建立文字編譯框有兩種方式 第一種 在對話方塊模式下,編輯資源檔案,撰寫建立對話方塊的指令碼,可在表示對話方塊指令碼的一對識別符號begin和end中間插入形如 edittext idc m...

MFC文字編輯框

mfc文字編輯框裡面的2個屬性multiline和auto hscroll,先看vs給的說明 multiline 如果控制項文字對控制項寬度而言太長,測將文字折為多行。auto hscroll 當使用者在行尾鍵入字元時,自動是文字滾動到左側。先試試multiline true auto hscrol...

文字編輯框 調整文字編輯區域

在多行模式下的cedit類提供void cedit setrectnp lpcrect lprect 函式,此函式用來調整文字編輯的區域,用這個函式可以設定上下左右margins,而void setmargins uint nleft,uint nright 函式只能設定左右margins。crec...