Wie schreibe ich in QLineEdit
Gleitkommazahlen im Bereich (0.0 - 5.0)? Ich benutze qregexp für eine solche Aufgabe zum Beispiel QRegExp a("([a-zA-Z]{3,30})")
, um Benutzernamen zu schreiben, aber habe keine Ideen, um Float-Nummern zu schreiben.Nur Gleitwerte in QLineEdit schreiben
Antwort
Die beste Möglichkeit ist die QDoubleValidator
für eine solche Aufgabe zu verwenden, da es nicht nur die Form des Eingangs validieren, sondern auch die Bereich:
auto dv = new QDoubleValidator(0.0, 5.0, 2); // [0, 5] with 2 decimals of precision
yourLineEdit->setValidator(dv);
Wenn Sie mit vielen Dezimalstellen zu tun haben, (oder wenn Sie planen, den Bereich zu einem breiteren ändern), dann würden Sie wahrscheinlich daran interessiert sein, die wissenschaftliche Schreibweise zu deaktivieren:
dv->setNotation(QDoubleValidator::StandardNotation);
auf der anderen Seite, und für die Vollständigkeit der Antwort, da Sie nach regulären Ausdrücken gefragt haben, ist eine allgemeine Regex für die Float-Nummer [-+]?[0-9]*\.?[0-9]+
, so dass Sie für Ihren bestimmten Bereich versuchen können: ([0-4]?\.[0-9]+)|(5\.0+)|([0-5])
. Trotzdem empfehle ich die Verwendung des Validators, da die Regex schwieriger zu skalieren ist, wenn sich der Bereich über das Projekt oder in der Laufzeit ändert.
@ mark1999 Anstelle von 'QLineEdit' und' QDoubleValidator' können Sie auch eine 'QDoubleSpinBox' verwenden. Es ist eher so, als ob der Benutzer mit dem Mausrad von einem Wert zu einem anderen springen kann. –
@ BenjaminT +1. Ich stimme auch zu: Eine 'QDoubleSpinBox' wäre eine schönere und sauberere Lösung, wenn das OP den' QLineEdit' beiseite legen könnte. – cbuchart
- 1. Lassen Sie nur Gleitwerte eingegeben werden, der Maximalwert ist 100,00
- 2. Anwendung stürzt auf setupUi in QLineEdit consturctor nur in MacOS
- 3. Cursor in QLineEdit setzen
- 4. Set QLineEdit Fokus in Qt
- 5. Wie bekomme ich in QLineEdit gerade Ecken?
- 6. Stellen Sie QLineEdit so ein, dass nur Zahlen akzeptiert werden.
- 7. Pass Argument von qlineedit
- 8. PyQt Fehler mit QLineEdit
- 9. QLineEdit wird nicht angezeigt
- 10. QLineEdit`s QCompleter Stylesheet
- 11. QLineEdit - Fokus Ereignis
- 12. QLineEdit: Change clearButton
- 13. QLineEdit Abgerundete Ecken?
- 14. Maskieren von QLineEdit-Text
- 15. Qt: Synchron QLineEdit und QTextEdit
- 16. (PyQt5) Liste von QLineEdit erstellen
- 17. Bigquery - schreiben nur Autorisierung
- 18. Nur EditText schreiben?
- 19. Pyside: QLineEdit nimmt mehrere Eingänge
- 20. QT und benutzerdefiniertes Menüelement (QLineEdit)
- 21. Wie man QLineEdit in QScrollArea erweitern kann
- 22. QWheelEvent :: ignore() funktioniert nicht in hochgestuften QLineEdit?
- 23. Aktualisierung QLineEdit auf QPushButton in PyQt5 klicken
- 24. So verstecken Sie das Passwort in QLineEdit
- 25. PyQt: Werte aus QLineEdit abrufen
- 26. PyQt Auto-Space qlineedit Zeichen
- 27. Kein solcher Slot QLineEdit :: setText
- 28. Wie ändere ich den Text eines QLineEdit, wenn der Benutzer auf QLineEdit in Qt klickt?
- 29. QLineEdit :: maxLength Unterstützung für Android
- 30. PyQt: QLineEdit mit angebrachtem Etikett
Nicht sicher, was Sie mit dem Schreiben meinen, aber suchen Sie nach Validierung? Siehe [QDoubleValidator] (http://doc.qt.io/qt-5/qdoublevalidator.html) – Blechdose