QValidator in Qt?
Ich bin mit der Validierung meiner TextBox nur zahlen zwischen 1-75.
Ich bin in der Lage zu tun, dies über den folgenden code :
QValidator *validator = new QIntValidator(1, 75, this);
QLineEdit *edit = new QLineEdit(this);
edit->setValidator(validator);
Aber jetzt das problem, dass er zero auch. Ich möchte vermeiden, Zero
Jede Hilfe ist willkommen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
schreiben Sie Ihre validator so:
Sind Sie derzeit nicht überprüfen: wenn Sie eine
QValidator
Sie sind nur die Filterung Zeichen, die denen, die könnten, verfassen Sie eine gültige Eingabe.Damit zu tun die eigentliche überprüfung, die Sie haben zu prüfen, dass
QLineEdit::hasAcceptableInput()
zurücktrue
.Beispielsweise in einem slot verbunden, der
textChanged()
signal, Sie könnten, je nach dem Wert deracceptableInput
Eigenschaft, aktivieren/deaktivieren der Schaltfläche abschicken der Daten, dass der Nutzer noch weiter gehen und einen ungültigen Wert, und/oder ändern Sie den text Farbe (rot für " ungültig).Bei numerischen Werten können Sie auch mit einem
QSpinBox
stattQLineEdit
. Definieren Sie den Bereich (min/max), und sein Verhalten, wenn der Wert nicht gültig, wenn die Bearbeitung abgeschlossen ist (mitQSpinBox::setCorrectionMode
).Beim schreiben von '0' Qt interpretiert als eine plausible intermediate-Wert während der Bearbeitung.
Wenn Sie nicht wie dieses Verhalten, müssen Sie erstellen eine Vererbung Klasse von
QIntValidator
- und re-implementieren Sie die folgende Funktion:Grüße.