[英]QML TextArea colored text with selection
我正在嘗試使用QML TextArea完成以下行為:
TextArea中有一個文本流,需要選擇一個單詞(突出顯示)。 要求用戶在其他地方輸入一些文本,然后按Enter繼續(不是問題的一部分)。 之后,選擇跳到下一個單詞,最后一個選中的單詞被塗成綠色或紅色。 只有一小部分可見的文本(幾行,由TextArea高度管理-不是問題的一部分),如果下一個單詞超出該可見范圍,我需要滾動文本..因此,選擇是非常有幫助,因為用戶的所有交互(滾動或選擇等)均被禁用(禁用不是問題的一部分)
我的主要問題是:如果我使用textFormat: TextEdit.RichText
我可以輕松地按自己喜歡的方式為文本着色( <font color=\\"green\\">{}</font>
),但是我不能使用“ select “-功能不再存在,因為-我猜想-該選擇適用於“純文本”,而不能對應於“富文本”選擇? 無論如何, selectWord()
等均不起作用QTextCursor::setPosition: Position '-1' out of range
是結果。 但是,如果我禁用RichText,我不知道如何為文本着色。 如果我可以檢測到當前單詞(可能會被塗成藍色等),並且如果它不在可見區域內滾動以“偽造”選擇行為,則可能沒有選擇就生活了,但這只是第三種選擇。
我真的會知道如何為非Rich Text着色或如何在TextArea中選擇Rich Text。
您可以使用QSyntaxHighlighter
突出顯示與所選內容無關的詞。 有關更多詳細信息,請參見QQuickTextDocument
和Qt中如何使用QSyntaxHighlighter類在QML TextEdit上實現富文本邏輯 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.