Seite 1 von 1

QDoubleSpinBox mit Exponetial Zahlen (1.24e-24)

Verfasst: 9. Juli 2008 14:08
von pospiech
Ich habe sehr häufig das Problem, das ich mit Zahlen arbeite die eine Größenordnung im Bereich +-20 Größenordnungen haben (e-20 ... e+20).

Jetzt kann ich in einer QDoubleSpinBox nicht 20 Stellen eintippen. Das wäre auch nicht intuitiv. Mir wäre lieber ich könnte Zahlen mit Exponent eintippen und den SingleStep so einstellen das immer eine Größenordnung hoch und runtergezählt wird. Nur das scheint es ja nicht zu geben.

Wenn ich jetzt dazu eine Klassen von QDoubleSpinBox ableiten wollte - wie müsste ich dann vorgehen? Oder wie sollte ich das sinnvollerweise implementieren?

Re: QDoubleSpinBox mit Exponetial Zahlen (1.24e-24)

Verfasst: 9. Juli 2008 15:41
von kitov
das musst du schon selbst implementieren,
ableiten von QAbstractSpinBox.

Re: QDoubleSpinBox mit Exponetial Zahlen (1.24e-24)

Verfasst: 9. Juli 2008 17:44
von pospiech
kitov hat geschrieben:das musst du schon selbst implementieren,
ableiten von QAbstractSpinBox.
Danke für den Hinweis. Ich habe mir mal QDateTimeEdit angeschaut (den Quellcode), da es meinem Problem näher kommt als QDoubleSpinBox. Da wird aber manuell jede Taste und Curserposition abgefangen. So etwas zu implementieren würde mich glatt eine Woche kosten. Das kann ich zeitlich gar nicht aufwenden.

Verfasst: 10. Juli 2008 14:31
von Zonk
dann musst du die Eingabe der Zahl aufsplitten, und für dne Exponent und die Mantisse jeweils eine eigene Spinbox nehmen.

Wenn du das mit den passenden Labels ausschmückst und klug arragniert sieht es sogar intuitiv verständlich aus ( wenn auch nicht schön).

Zonk

Verfasst: 15. Juli 2008 00:07
von Thorsten
Vielleicht kannst du damit was anfangen.

Ein Slider mit logarithmischer Scala:

http://qwt.sourceforge.net/class_qwt_slider.html

Verfasst: 15. Juli 2008 09:28
von pospiech
Ich nutze qwt für die Plots und kenne auch diese Slider. Allerdings geht es mir darum Werte (Konstanten, Numerische Parameter) sehr präzise auf mehrere Kommastellen genau angeben zu können und dafür ist ein Slider nicht das richtige.

Verfasst: 3. Januar 2009 15:54
von pospiech
Ableiten von QAbstractSpinBox wäre wohl der falsche Weg gewesen. Ich habe jetzt von QDoubleSpinBox und alle virtuellen Functionen reimpementiert. Leider benötige ich ebenfalls die Validationsfunctionalität, welche sich nicht borgen lässt. Damit musste ich diese komplett aus dem Quellcode von QDoubleSpinBox kopieren. (hat jemand eine bessere Lösung?).

Der Quellcode ist am Ende auf über 600 Zeilen angewachsen. Daher präsentiere ich den jetzt nicht hier, sondern auf meiner Webseite:
http://www.matthiaspospiech.de/blog/200 ... -notation/

Jeder Hinweis zur Verbesserung ist willkommen.

Matthias