Wie setzen die Eingabe-Maske und QValidator zu einem QLineEdit in einer Zeit, in der Qt?
Möchte ich eine Zeile Bearbeiten, die akzeptiert eine ip-Adresse. Wenn ich die Eingabe Maske wie:
ui->lineEdit->setInputMask("000.000.000.000");
Es ist das akzeptieren von Werten größer als 255. Wenn ich eine Prüfung dann müssen wir einen Punkt(.) nach jeweils drei Ziffern. Was wäre der beste Weg, damit umzugehen?
InformationsquelleAutor QtUser | 2014-04-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
Absolut, weil '0' bedeutet diese:
Wie Sie sehen können, ist dies nicht Ihre Tasse Tee. Es sind mindestens die folgenden Möglichkeiten, um es zu umgehen:
Schreiben Sie eine benutzerdefinierte validator -
Verwenden regex
Split den Eingang in die vier Einträge und überprüfen Sie jeden Eintrag auf seine eigene, während immer noch mit visual Trennzeichen zwischen den Einträgen.
Die regex-Lösung wäre wahrscheinlich die schnelle, aber auch hässlichste IMHO:
Disclaimer: diese wird nur überprüft IP4-Adressen korrekt, so wird es nicht funktionieren für IP6 sollten Sie brauchen, dass in der Zukunft.
InformationsquelleAutor lpapp
Hallo ich hatte fast das gleiche problem. Lösungen mit inputmask-oder regExp-waren unbefriedigend. Ich beschloss, mein eigenes Fahrrad.
Header:
Quelle:
InformationsquelleAutor AGo
Die einfachere Methode ist, zu versuchen Eingabeformat option
und in den validation-code verwenden Sie die folgende einfache Bedingung
InformationsquelleAutor Arun Kumar K S
Für diejenigen, die sich Wundern über folgenden Hinweis im QT doku:
In diesem Fall wird vom validator braucht die Pflege-Rohlinge. Meine Lösung, angepasst von lpapp Antwort und diese Qt forum posten, lautet deshalb:
Ich bin ein Anfänger in der Verwendung von regulären Ausdrücken, so fühlen sich frei, Verbesserungen zu empfehlen.
InformationsquelleAutor Gesalat