0
因爲我沒能在這裏找到合適的解決方案,我想與Q &一個這樣的問題:檢查/確定的QString包含HTML
有沒有一種方法,以確定是否QString
是由HTML的,即富文本,(或至少,包含HTML)?
這可能是table/view model中的數據編輯器的未知/ QVariant
調用setData
的情況。
因爲我沒能在這裏找到合適的解決方案,我想與Q &一個這樣的問題:檢查/確定的QString包含HTML
有沒有一種方法,以確定是否QString
是由HTML的,即富文本,(或至少,包含HTML)?
這可能是table/view model中的數據編輯器的未知/ QVariant
調用setData
的情況。
一個解決方案可以是使用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標籤。例如,後者會從文本中去掉換行符。