簡體   English   中英

QML TextArea帶選擇的彩色文本

[英]QML TextArea colored text with selection

我正在嘗試使用QML TextArea完成以下行為:

  1. 我希望文本中的單個單詞具有不同的顏色
  2. 我希望“選擇”功能可用於自動滾動(禁用用戶交互)

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突出顯示與所選內容無關的詞。 有關更多詳細信息,請參見QQuickTextDocumentQt中如何使用QSyntaxHighlighter類在QML TextEdit上實現富文本邏輯

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM