【问题标题】:check/determine if QString contains html检查/确定 QString 是否包含 html
【发布时间】:2017-03-15 19:31:32
【问题描述】:

由于我无法在这里找到合适的解决方案,所以我想问答这个问题:

有没有办法确定QString 是否由 html 组成,即是否是富文本(或至少包含 html)?

table/view model 中数据编辑器的 setData 的未知/QVariant 调用可能是这种情况。

【问题讨论】:

    标签: c++ qt qt4 qt5


    【解决方案1】:

    解决方案可以是使用Qt::mightBeRichText 代替QString

    #include <QTextDocument>
    
    QString ensurePlainText(const QString& text)
    {
        QString out;
        if (Qt::mightBeRichText(text))
        {
            // is html -> convert to plain text
            QTextDocument text;
            text.setHtml(value.toString());
            out = text.toPlainText();
        }
        else
        {
            out = text;
        }
        return out;
    }
    

    重要的是要注意所提出的方法uses a heuristic。它可能无法检测到 html 或错误地检测到非 html 文本中的 html。前者可能会在字符串中返回 html 标签。例如,后者会从文本中删除换行符。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-10
      • 2013-04-22
      • 2016-02-04
      • 1970-01-01
      • 2016-01-05
      • 2019-01-04
      相关资源
      最近更新 更多