2017-03-15 3 views
0

Da ich nicht in der Lage war hier eine passende Lösung zu finden, die ich wollte Q & A diese Frage:Scheck/festzustellen, ob QString html enthält

Gibt es eine Möglichkeit, um zu bestimmen, ob ein QString von html gemacht wird, dh ist Rich-Text, (oder enthält zumindest HTML)?

Dies kann der Fall sein für unbekannte/QVariant Aufrufe an setData von Dateneditoren in der table/view model. uses a heuristic

#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; 
} 

Es ist wichtig zu beachten, dass das Verfahren vorgestellt:

Antwort

1

kann eine Lösung Qt::mightBeRichText für QString zu bedienen. Es kann fehlschlagen, HTML zu entdecken oder falsch HTML in einem Nicht-HTML-Text zu erkennen. Ersteres kann HTML-Tags in der Zeichenfolge zurückgeben. Letzteres würde zum Beispiel Zeilenumbrüche aus dem Text entfernen.