Seite 1 von 1

[gelöst] Boolescher Ausdruck mit Unicode-Symbol

Verfasst: 29. November 2005 09:55
von shs
Hallo!

Ich verwende in einigen Input-Widgets meiner Anwendung Unicode-Symbole, die in meiner Linux-Distribution im Schriftsatz "Standard Symbols L" zu finden sind. Unter Windows ist es der Font "MS Unicode 8", der die Symbole enthält, die ich brauche.

Wenn ich zum Beispiel den Font eines QTextEdit auf "Standard Symbols L" setze, dann werden mir die logischen Symbole (Negation, Konjunktion, Disjunktion) angezeigt. Dabei wird vom Qt-Designer beispielsweise für das Symbol der Negation der folgende Code generiert:

Code: Alles auswählen

textEdit->setText( trUtf8( "\xc2\xac" ) );
Und das Negation-Symbol ist sichtbar.

Mein Problem:
Ich suche einen booleschen Ausdruck, der - um bei diesem Beispiel zu bleiben - überprüft, ob es sich um das Negation-Symbol handelt. Also zum Beispiel:

Code: Alles auswählen

qDebug( (textEdit->text() == "¬") ? "gleich" : "ungleich" ) ); 
Dieser Ausdruck liefert allerdings "ungleich". Hat jemand einen Tipp, wie ich hier die Überprüfung auf Gleichheit (plattformübergreifend) vornehmen kann?

Danke im Voraus!

Verfasst: 29. November 2005 13:21
von BartSimpson
xx= QTextedit
1234=Unicode Zeichencode des Zeichens.

Code: Alles auswählen

if(xx->text()==QString(QChar(0x1234)))
{
  qDebug()<<"gleich";
}
Oder was meinst du?
Wenn es kürzer seine soll, kannst du es auch mit QString::contains machen

Verfasst: 29. November 2005 16:22
von shs
Danke, Bart!
Mit text.contains( QChar( 0x00AC )) konnte ich es lösen.