繁体   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