gpt4 book ai didi

javascript - QML:将 RichText 作为 PlainText 传递

转载 作者:行者123 更新时间:2023-11-29 19:46:24 25 4
gpt4 key购买 nike

我有一个像这样的简单 TextArea:

TextArea {
id: my_text_area
anchors.margins: 5
anchors.fill: parent
textFormat: TextEdit.RichText
}

用户可以在 TextArea 中输入文本。我现在想在输入的文本中找到模式,并通过将它们设为粗体、红色或下划线来突出显示它们。

我将文本传递给这样的 js 函数:

Functions.doSomething(my_text_area.text)

我遇到的问题是:我正在搜索文本中的特定模式,而 RichText 的整个 html 标记弄乱了这些模式。

是否有我错过的功能允许我以 PlainText 格式传递文本?或者是否有一些“简单”的方法可以使用 javascript 函数删除所有 html 标记?还是有其他方法可以解决这个问题?

到目前为止我尝试了什么:

我试图在传递文本之前将 textFormat 设置为 TextEdit.PlainText,但这不起作用。我还考虑过拥有一个 RichText TextArea 和一个 PlainText TextArea,并且一次只显示一个(例如,用户在 PlainText 区域中输入文本,程序将其显示在 RichText 区域中),但问题是用户应该能够在文本突出显示后对其进行编辑。

最佳答案

不要将 area.text 传递给函数,它会提供 TextEdit 的原始内容,无论是纯文本还是富文本。如果您的区域有 RichText 并且您想使用它的普通表示,请使用:

area.getText (0, area.length) 

它将为您提供内容的字符,不包括 HTML 格式标记。但是你需要自己从纯文本位置和格式化文本进行映射。

因此,如果您需要将“foo”替换为“foo”,您无论如何都必须在 area.text 上执行此操作,使用一些 RegExp 或其他任何东西。

关于javascript - QML:将 RichText 作为 PlainText 传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19265176/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com