Seite 1 von 1

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

Verfasst: 2. November 2011 16:22
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?

Re: Frage zu QLineEdit->setInputMask()

Verfasst: 2. November 2011 16:45
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ß

Re: Frage zu QLineEdit->setInputMask()

Verfasst: 3. November 2011 16:24
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

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

Verfasst: 3. November 2011 16:45
von upsala
Das {1,1} ist überflüssig.