Hallo liebe Community,
ich habe ein Problem mit der Erkennung von Umlauten in meinem EventFilter!
Die Umlaute äÄ (Qt::Key_Adiaeresis), öÖ (Qt::Key_Odiaeresis) sowie
üÜ (Qt::Key_Udiaeresis) werden nicht erkannt.
Herausgefunden habe ich, dass die Umlaute durch folgende Werte
ansprechbar sind:
äÄ = 228
öÖ = 246
üÜ = 252
Soll ich nun mit eigenen enums arbeiten oder gibts dafür jetzt spezielle enums von Qt?
Bedanke mich für sinnvolle Hilfe schon mal im Vorraus.
[SOLVED] Qt Umlaute nicht erkannt
-
MADsCIENTIST
[SOLVED] Qt Umlaute nicht erkannt
Zuletzt geändert von MADsCIENTIST am 29. Dezember 2013 14:10, insgesamt 1-mal geändert.
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
Re: Qt Umlaute nicht erkannt
Ohne Code ... was willst du machen, wo kommen die Umlaute her?
MfG Christian
'Funktioniert nicht' ist keine Fehlerbeschreibung
'Funktioniert nicht' ist keine Fehlerbeschreibung
-
MADsCIENTIST
Re: Qt Umlaute nicht erkannt
Wo die Umlaute herkommen?
Also, in meinem EventFilter sollen alle Zahlen- u. Buchstaben-Eingaben eines bestimmten
QWidgets (QLineEdit) erkannt werden.
Die in dem Qt-Enumerationstyp angegebenen Werte für die Umlaute sind aber allesamt ungültig, sprich,
stimmen in ihrem Wert nicht mit den tatsächlichen Key-Codes überein.
Also, in meinem EventFilter sollen alle Zahlen- u. Buchstaben-Eingaben eines bestimmten
QWidgets (QLineEdit) erkannt werden.
Code: Alles auswählen
bool eventFilter(QObject *target, QEvent *event)
{
if(event->type() == QEvent::KeyPress && target == keyInput)
{
QKeyEvent *keyEvent = dynamic_cast<QKeyEvent*>(event);
int key = keyEvent->key();
if((key >= Qt::Key_0 && key <= Qt::Key_9) || (key >= Qt::Key_A && key <= Qt::Key_Z)
|| key == Qt::Key_Adiaeresis /*äÄ*/ || key == Qt::Key_Odiaeresis /*öÖ*/
|| key == Qt::Key_Udiaeresis /*üÜ*/ || (key >= Qt::Key_F1 && key <= Qt::Key_F12))
{
// ... do something
return true;
}
}
return false;
}
stimmen in ihrem Wert nicht mit den tatsächlichen Key-Codes überein.
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
Re: Qt Umlaute nicht erkannt
Ok, da würd ich mal einen Qt-Bug zu schreiben.
Allerdings weiß ich nicht was Du mit dieser ganzen Filterei erreichen willst - ein Eventfilter nur für die Validierung des Inputs ist geringfügig übertrieben...
Allerdings weiß ich nicht was Du mit dieser ganzen Filterei erreichen willst - ein Eventfilter nur für die Validierung des Inputs ist geringfügig übertrieben...
MfG Christian
'Funktioniert nicht' ist keine Fehlerbeschreibung
'Funktioniert nicht' ist keine Fehlerbeschreibung
Re: Qt Umlaute nicht erkannt
Das Key_Adiaeresis entspricht dem grossen Ä. Vermutlich erhälst Du für ä und Ä einen unterschiedlichen Key-Code:
'ä' 228 e4
'Ä' 196 c4
Für das ä scheint kein Qt-Key-Code zu existieren.
Daher kein Qt-Bug. Ich würde eigene Konstanten oder Enums verwenden.
'ä' 228 e4
'Ä' 196 c4
Für das ä scheint kein Qt-Key-Code zu existieren.
Daher kein Qt-Bug. Ich würde eigene Konstanten oder Enums verwenden.
ODT Informatik GmbH, Reto Tschofenig