【问题标题】:Get plain text from QString with HTML tags使用 HTML 标签从 QString 获取纯文本
【发布时间】:2011-05-14 05:18:17
【问题描述】:

我有带有 html 标签的 QString。为什么我可以从这个字符串中得到纯文本?

【问题讨论】:

标签: html qt qstring


【解决方案1】:

str.remove(QRegExp("]*>"));

【讨论】:

  • 这不是 Qt 方式,但在某些情况下这是一种不错的方式。谢谢。
  • 我确定这是最短的方法。
  • @k06a 这总是有效吗?关注点:stackoverflow.com/questions/590747/…
  • @neuronet 真实世界网站 html 包含很多错误和不一致之处。所以解析html不是一个好主意恕我直言。
【解决方案2】:

您需要从字符串中去除 HTML 标记。例如,请参阅this post

【讨论】:

    【解决方案3】:

    这个问题现在有点尘埃落定,但对于任何检查的人来说,(已经成为?)可以使用QTextDocumentFragment 以 Qt 方式将 HTML 转换为纯文本。

    这种方法可能会根据您的目的提供一致性以及稳健性(当然取决于 Qt 人的时间:) - 但他们的用户群相当大,到目前为止它对我来说非常有效)。

    我在 Python 中尝试了类似下面的方法,我认为 C++ 中的机制也应该大致相同。

    from PySide2.QtGui import QTextDocumentFragment
    
    plain = QTextDocumentFragment.fromHtml(
        "<body>someHtml<br/><b>it was so booold!</b></body>"
    ).toPlainText()
    

    (此外,Qt documentation 建议您只需将QString 传递给fromHtml。)

    【讨论】:

      猜你喜欢
      • 2017-03-31
      • 2021-02-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-21
      • 1970-01-01
      • 2011-07-10
      相关资源
      最近更新 更多