Chciałbym poradzić się Was jakbyście rozwiązali pewien problem wprowadzania danych w lineEdit'y (dokładnie chodzi mi tutaj o rozwiązanie oparte o c++/Qt, ale myślę, że rozwiązania Javie czy w C# to nie duża różnica.. (może być nawet "rozbudowany" pseudokod)).
Efekt końcowy
Wprowadzane dane w lineEdity to liczby typu double, od 0 do 10, których przykłady wyglądają tak:
0.0
5.1
7.6
10.2
10.7c
gdzie możliwe jest wprowadzenie wyłącznie kropki, a literę c można wprowadzić wyłącznie w momencie gdy wcześniej została wpisana liczba 10. Dodatkowo chcialbym uzyskać taki efekt, że jak mamy powiedzmy 5 linEditów i przechodzę po nich za pomocą tabulatora to po wpisaniu powiedzmy 5, ta liczba ma być uzupełniona do "pełnej" formy czyli 5.0 (a w przypadku 10c ma być 10.0c).
Jak taki efekt "najestetyczniej" uzyskać ?
Aktualnie mam zastosowany jakieś prymitywne wyrażenie regularne, które pozwala wprowadzić cyfry, kropke i literke c (ale nie spełnia to wszystkich powyższych warunków..). Pewnie przy kombinowaniu z if'ami, porównywaniem etc.. uzyskałbym końcowy efekt, ale już teraz wiem, że nie będzie to wyglądać za elegancko ..
Dlatego chciałbym zapytać się Was jaki Wy mielibyście pomysł na rozwiązanie tego problemu ?
ps. Ten wątek ma cel edukacyjny dla mnie ( i mam nadzieje dla innych :) ), bo inaczej pewnie to skalecze..
dodanie znacznika <code> - fp