QIntValidator Min > 0

Alles rund um die Programmierung mit Qt
Antworten
stonecold
Beiträge: 147
Registriert: 19. Oktober 2005 10:48

QIntValidator Min > 0

Beitrag von stonecold »

Hallo,

wir diskutieren hier gerade folgendes Problem. Zur Überprüfung der Eingaben eines LineEdit nutzen wir einen QIntValidatior. Wir reagieren auf das Signal EditingFinished() um die eingegebenen Werte aus der LineEdit auszulesen.

In unserem Beispiel setzten wir den Minimumwert 50. Wenn nun begonnen wird einen Wert einzugeben, z.B. 6, und anschließend die LineEdit verlassen wird, bekommen wir kein EditingFinished() Signal. Das liegt wahrscheinlich daran, dass die bisherige Eingabe ungültig ist, allerdings durch den Validator keine "Berücksichtigung" fand, da ja die Möglichkeit bestanden hätte, dass man noch ein zusätzliche 0 eingibt und so den vorgegebenen Minimum Wert überschritten wäre.

Die aktuelle Lösung sieht so aus, dass man für diese spezielle Line Edit jetzt noch FocusLost Event oder ähnliches abfragt und eine eigene Behandlung Implementiert. Ich vermute, dass dieses Problem kein Einzelfall ist und es bessere Lösungen geben müsste. Weiß jemand Rat?

Wir nutzen die qt Version 4.8 (Ich weiß, ist alt..... ist aber so. Ein Versions Update ist NICHT möglich!!!)

Danke für eure Hilfe und VG
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Re: QIntValidator Min > 0

Beitrag von Christian81 »

Von QIntValidator ableiten, validate() überschreiben und den dortigen Rückgabewert (der in dem Fall QValidator::Intermediate sein sollte) dann auf QValidator::Valid umbiegen. Dann muss die Prüfung auf > 50 dann aber eben weiter 'oben' gemacht werden.
Oder eben bei QValidator::Intermediate ein Signal senden und dann dort irgendwas damit machen.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Antworten