Slider in ein LineEdit Feld ausgeben

Alles rund um die Programmierung mit Qt
Antworten
Klausn
Beiträge: 48
Registriert: 28. Januar 2009 10:40

Slider in ein LineEdit Feld ausgeben

Beitrag von Klausn »

Hi zusammen,

wie kann man den int-Wert eines Sliders in ein LineEdit Feld ausgeben ?

ich bekomme immer wieder Meldung das die Konvertierung nicht hinhaut.

Es soll folgendermassen funktionieren:

Wenn der Slider bewegt wird, sollen die einzelnen int-Werte im lineEdit Feld erscheinen. Mit einem lCDNumber Feld ist das ja ganz einfach. Aber wie funktioniert das mit LineEdit ?

danke für hilfe

mfg
klausn
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag von franzf »

In dem du statt der auf Strings ausgelegten QLineEdit ein QSpinBox nimmst. Das hat den passenden SLOT setValue(int).
Klausn
Beiträge: 48
Registriert: 28. Januar 2009 10:40

Beitrag von Klausn »

jo danke das funktioniert ! Habs jetzt allerdings damit gelöst:

lineEdit9->insert((QString()).setNum(a));

Der Wert (a) wird damit in eine Zahl umgewandelt.
solarix
Beiträge: 1133
Registriert: 7. Juni 2007 19:25

Beitrag von solarix »

Klausn hat geschrieben: ... (QString()).setNum(a)...
Naja.. die Trolls dachten wohl eher an: lineEdit9->insert(QString::number(a));
Klausn
Beiträge: 48
Registriert: 28. Januar 2009 10:40

Beitrag von Klausn »

Wie kann man die einzelnen Schritte des Sliders verstellen ???

Beispiel:

Slider geht von 0 bis 1000 ! Alles in 10er Schritten ... wie kann man zum Beispiel eine Schrittgröße von 0,1 einstellen ???
AuE
Beiträge: 918
Registriert: 5. August 2008 10:58

Beitrag von AuE »

Steht sehr gut beschrieben in der Doku....
Klausn
Beiträge: 48
Registriert: 28. Januar 2009 10:40

Beitrag von Klausn »

gibts da evtl. nen link ?? ich nutze hier nur QT 3.3.3


hab das gerade mal ausprobiert. Ich komme nicht unter eine Schrittweite von 1 !! Kann mir jemand weiterhelfen ? Ich benötige eine Schrittweite von ca. 0.05
AuE
Beiträge: 918
Registriert: 5. August 2008 10:58

Beitrag von AuE »

Slider::QSlider ( int minValue, int maxValue, int pageStep, int value, Orientation orientation, QWidget * parent, const char * name = 0 )
Constructs a slider whose value can never be smaller than minValue or greater than maxValue, whose page step size is pageStep and whose value is initially value (which is guaranteed to be in range using bound()).

If orientation is Qt::Vertical the slider is vertical and if it is Qt::Horizontal the slider is horizontal.

The parent and name arguments are sent on to the QWidget constructor.

von http://doc.trolltech.com/3.3/qslider.html
pfid
Beiträge: 535
Registriert: 22. Februar 2008 16:59

Beitrag von pfid »

Klausn hat geschrieben:gibts da evtl. nen link ?? ich nutze hier nur QT 3.3.3
http://doc.trolltech.com/3.3/classes.html
Klausn
Beiträge: 48
Registriert: 28. Januar 2009 10:40

Beitrag von Klausn »

Sohooooo ,

ich hab das jetzt ne Weile ausprobiert. Allerdings ist eine Schrittweite von unter 1 nicht möglich... zumindest bekomm ich das nicht hin.

Mein Slider ist folgendermassen konfiguriert:

slider1->setRange( -1, 1 );
slider1->setValue( 0 );
slider1->setPageStep(0.05);

Wenn ich die Range verändere auf größere Werte und bei setPageStep auch größere Werte eintrage wird alles super übernommen und funktioniert auch genau so wie es sein soll. Aber bei Werten unter 1 gehts nicht mehr.

Hat noch jemand eine Idee oder einen Vorschlag wie man das realisieren kann !?
solarix
Beiträge: 1133
Registriert: 7. Juni 2007 19:25

Beitrag von solarix »

Meine Güte.. ein bisschen Fantasie...

Code: Alles auswählen

slider1->setPageStep(0.05); 
Also "0.05" ist ein schlechter Integer-Wert.. siehe "void QSlider::setPageStep(int)"..

Also warum denn nicht einfach alles x100?

Code: Alles auswählen

slider1->setRange( -100, 100 );
slider1->setValue( 0 );
slider1->setPageStep(5); 
...
...
double sliderValue = slider->value()/(double)100;
Klausn
Beiträge: 48
Registriert: 28. Januar 2009 10:40

Beitrag von Klausn »

ääähhhh jaaa ... integer ... da gehn ja nur vollzahlen ... manchmal steht man eben ein wenig auf dem schlauch !!! Danke nochmal .. funktioniert übrigens super jetzt !!!
Antworten