Seite 1 von 1

QT Slider

Verfasst: Freitag 26. September 2014, 09:50
von GoldenerReiter
Hallo,
wie kann ich den Wert eines Sliders welchen ich in QT-Designer erstellt habe in Python benützen?
Bei einem Button schreibe ich in Python z.B.

Code: Alles auswählen


def function1(checked):
    if(checked):
        x = 1
    else:
        x = -1

workingWin.radiobtn.connect("clicked(bool)",function1)

für eine andere funktion möchte ich allerdings einen Wert von einem Slider bekommen. Zum Testen habe ich folgendes geschrieben:

Code: Alles auswählen

def slider():
     workingWin.lcdNumber["value"] = workingWin.slider_number["value"]

workingWin.slider_number.valueChanged.connect("clicked()",slider)
Habe es auch mit ohne connect und anstelle von "clicked()" -> "changed()" ausprobiert. Doch ich bekomme immer die Fehlermeldung:
>>Could not create uiItem of requested widget<<
welches sich auf die 4. Zeile bezieht

Ich habe auch das Internet schon sehr durchsucht, aber keine passende lösung dafür gefunden, da widgets irgendwie immer anders erstellt werden (also direkt aus python).
Falls jemand eine Seite weiss, wo widgets in qt designer gesetzt werden und dann im anderen Programm benützt werden, bitte die Seite sagen, dass würde mir auch schon viel weiter helfen.

mfg

Re: QT Slider

Verfasst: Freitag 26. September 2014, 11:18
von jerch
@GoldenerReiter:
Du vermischt hier die alte und die neue Annotation von Signal-Slot-Verbindungen. Damit Du vom Signal `valueChanged` den Wert mitbekommst, musst Dein Slot diesen auch als Parameter entgegennehmen:

Code: Alles auswählen

def function_with_arg(slider_value):
    print slider_value

slider.valueChanged.connect(function_with_arg)
Das funktioniert deshalb, weil `valueChanged` den Wert mit rausgibt (Signatur ist void QAbstractSlider::valueChanged(int value))

Das Thema ist besser unter Qt/KDE aufgehoben.

Re: QT Slider

Verfasst: Freitag 26. September 2014, 11:30
von GoldenerReiter
Ah danke,
so habe ich es zum laufen bekommen.
vielen dank