Frage

Ich bin mit einem QSlider (v4.6) für die Eingabe sowie Feedback für den Benutzer zur Verfügung zu stellen. Für die Rückmeldung werde ich die setValue Methode anrufen. Ich versuche, ein Signal zu finden, die nur dann, wenn der Benutzer ausgelöst werden, den Wert geändert. Die valuechanged Signal wird ausgelöst, wenn der Benutzer den Wert geändert sowie, wenn ich rufe setValue. sliderMoved feuert nur dann, wenn der Benutzer den Schieber zieht (nicht, wenn die Tastatur). Ich überprüfte die API-Dokumentation und kann nicht scheinen, nichts zu finden. Bin ich etwas fehlt? Dies scheint etwas, das gemeinsam wäre. Wenn es kein anderes Signal ist, wie würden Sie empfehlen, dass ich diese Funktionalität simulieren? Sollte ich eine Fahne vor dem Aufruf von setValue, trennen und verbinden Sie das Signal jedes Mal, ich rufe setValue ...?

War es hilfreich?

Lösung

Gute Frage, überprüfte ich die API und konnte auch kein Signal finden, die nur ausgelöst werden würden, wenn der Wert vom Benutzer geändert wurde. Die Abhilfe Sie vorgeschlagen möglicherweise die einzige Option sein, nur im Kopf behalten, dass Sie nicht zu trennen haben Sie / connect alle Signale, nur QObject::blockSignals Methode verwenden:

slider->blockSignals(true);
slider->setValue(x);
slider->blockSignals(false);

Ich hoffe, das hilft.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top