Qwt Slider setRange()



  • Moinsen ist glaube ich ein Problem mit dem Qt Slider.
    Würde gerne einen Zahlenbereich von
    1 bis 1e-8
    darstellen. Sitze schon Stunden dran und kriege es einfach nicht gebacken…
    ui.Slider->setRange(1, 1e4, 0.01);
    ui.Slider->setScale(1, 1e-4,1e-1);
    gibt es mir
    1 --- 2e-05 ---- 4e-05 -----5e-05 ----8e-05 ----…

    Ich hätte gerne
    1 --- 1e-1 ----- 1e-2 ------ 1e-3 -----1e-4 -----

    hmmm



  • Hab einige Fragen zu deinem Problem:
    Ein Bereich von 1 bis 1e-8? Du weißt, dass 1 größer als 1e-8 ist oder beduetet 1e-8 bei dir nicht 0.00000008?
    Wo hast du diese Funktionen her? In AbstractSlider gibt es nur ein setRange mit 2 Argumenten(min, max) und die Funktion setScale gibt es nur mit einem Argument bei QGraphicsItem.
    Soll dein Zahlenbereich sich also pro Strich auf 1/10 verkleinern? Dann ist es nicht linear und damit wird es komplizierter.
    Vllt. kannst du ein paar Sachen davon klarstellen. Ich habe nämlich auch schonmal ähnliches probiert.



  • Zitat : // Ein Bereich von 1 bis 1e-8? Du weißt, dass 1 größer als 1e-8 ist oder beduetet 1e-8 bei dir nicht 0.00000008? //

    ^^ jap das ich mir bewusst.
    Ich möchte gerne eine Toleranz einstellen, um so kleiner diese ist um so genauer wird mein Programm. Soll im Grunde nichts anderes sein, als eine Differenz.

    Dachte mir ich scrolle das ganze nach rechts und es wird immer genauer = immer kleiner bis auf 1e-8.

    Die Funktion die die meinst habe ich von hier:
    http://www.digitalfanatics.org/e8johan/projects/widgets/qwtslider.html
    lg



  • Das kannst du doch viel einfacher machen:
    QSlider von 1 bis 8. Danach nimmst du den Wert und rechnest intern 1e-%VAR%, je nach dem entsprechenden Wert, den du die vom Slider holst. Und zum Schluss für das optische pakcst du ein paar QLabels an den Rand des Sliders. Geht doch viel einfacher oder=?



  • ne gute Idee , ist ne gute Idee
    Ist vielleicht sogar noch übersichtlicher

    👍 👍


Anmelden zum Antworten