Domanda

Io sto usando un QSlider (v4.6) per l'ingresso, nonché di fornire un feedback all'utente. Per le valutazioni Sarò chiamando il metodo setValue. Sto cercando di trovare un segnale che il fuoco solo se l'utente ha modificato il valore. I segnali di fuoco ValueChanged quando l'utente ha modificato il valore così come quando chiamo setValue. sliderMoved generato solo quando l'utente trascina il cursore (non quando si utilizza la tastiera). Ho controllato la documentazione API e non riesco a trovare nulla. Mi sto perdendo qualcosa? Questo sembra qualcosa che sarebbe comune. Se non c'è altro segnale, come ti consigliamo di simulare questa funzionalità? Devo impostare una bandiera prima di chiamare setValue, scollegare e ricollegare il segnale ogni volta che io chiamo setValue ...?

È stato utile?

Soluzione

Buona domanda, ho controllato l'API e, inoltre, non riusciva a trovare un segnale che potrebbe essere attivato solo se il valore è stato modificato dall'utente. La soluzione avete proposto può essere l'unica opzione, basta tenere a mente che non c'è bisogno di scollegare / collegare tutti i segnali, basta utilizzare il metodo QObject::blockSignals:

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

La speranza che aiuta.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top