Frage zu QLineEdit->setInputMask()[gelöst]

Alles rund um die Programmierung mit Qt
Antworten
jasper
Beiträge: 60
Registriert: 3. Februar 2009 11:36
Wohnort: Hamburg

Frage zu QLineEdit->setInputMask()[gelöst]

Beitrag von jasper »

Hallo Forum,
ich verwende die Komponente QLineEdit, um den Namen einer Anlage einzugeben.
Beispielsweise kann eine Anlage "Blockheizkraftwerk" heißen. Dabei möchte ich aber
nur die Zahlen 0-9 sowie die Buchstaben A-Z und a-z zulassen. Sonderzeichen einschließlich
üÜ, äÄ, ß und öÖ sollen nicht zulässig sein. Mit der Beschreibung der Methode setInputMask("NNNN")
bekomme ich das nicht ganz hin, da die Sonderzeichen ä,ö... weiterhin zulässig sind.

...ich verwende QT-4.6.3 .

Kann mir irgendjemand weiterhelfen?
Zuletzt geändert von jasper am 3. November 2011 16:25, insgesamt 1-mal geändert.
almboa
Beiträge: 21
Registriert: 27. September 2009 11:52

Re: Frage zu QLineEdit->setInputMask()

Beitrag von almboa »

Hallo,

nimm einen QRegExpValidator für das QLineEdit und verzichte auf die Input-Maske.
Als expression sollte "^[0-9A-Za-z]*" passen.

Gruß
jasper
Beiträge: 60
Registriert: 3. Februar 2009 11:36
Wohnort: Hamburg

Re: Frage zu QLineEdit->setInputMask()

Beitrag von jasper »

Hallo almboa,
danke für den Beitrag! Jetzt kann ich die Komponente QLineEdit beliebig formatieren:
Die erste Ziffer soll ein Buchstabe sein, die restlichen 7 Ziffern Buchstaben oder Zahlen:

Code: Alles auswählen

   QRegExp rx("^[A-Za-z]{1,1}[A-Za-z0-9]{1,7}$");
   QValidator *pVal = new QRegExpValidator(rx,this);
   ui.EName->setValidator(pVal);
Der Ärger mit den Sonderzeichen ö,ä usw. hat nun endlich ein Ende.

Gruß

Jasper
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Re: Frage zu QLineEdit->setInputMask()[gelöst]

Beitrag von upsala »

Das {1,1} ist überflüssig.
Antworten