2013-03-22 8 views

risposta

38

Il segnale toggled viene emesso ogni volta che lo stato di controllo della casella di controllo cambia, anche se cambia tramite il codice, mentre il segnale clicked viene emited solo quando l'utente interagisce con la casella, ad esempio:

ui->checkbox->setChecked(true); // toggled will be emitted but not clicked 
3
QCheckBox::toggled(bool) 

emesso quando la casella di controllo cambia il suo stato, se questo è attraverso clic su di esso o utilizzando setChecked o toggle, ecc

QCheckBox::clicked(bool) 

emesso quando la casella di controllo viene cliccato. Cioè, quando l'utente fa clic e rilascia sulla casella di controllo. Si verifica anche quando si digita il tasto di scelta rapida o si utilizza click. La casella di controllo non deve necessariamente essere verificabile perché venga emessa.

Se si sta ascoltando per quando lo stato della casella di controllo sta cambiando, utilizzare toggled. Se stai ascoltando quando l'utente fa clic sulla casella di controllo, indipendentemente dal fatto che cambi stato o meno, usa clicked.

6

QCheckBox Eredita sia attivata e cliccato.

void QAbstractButton::clicked (bool checked = false) [signal] 

Questo segnale viene emesso quando il pulsante viene attivato (cioè premuto poi rilasciato mentre il cursore del mouse è all'interno del pulsante), quando la chiave di collegamento viene digitato, o quando scatto() o animateClick() viene chiamato . In particolare, questo segnale non viene emesso se si chiama setDown(), setChecked() o di commutazione(). Se il pulsante è selezionabile, il segno di spunta è vero se il pulsante è selezionato, o falso se il pulsante è deselezionato.

void QAbstractButton::toggled (bool checked) [signal] 

Questo segnale viene emesso ogni volta che un pulsante controllabile cambia stato. selezionato è vero se il pulsante è selezionato, o falso se il pulsante è deselezionato. Questo potrebbe essere il risultato di un'azione dell'utente, attivazione di uno spazio clic() o perché è stato chiamato setChecked(). Gli stati dei pulsanti nei gruppi di pulsanti esclusivi vengono aggiornati prima che questo segnale venga emesso. Ciò significa che gli slot possono agire sia sul segnale "off" che sul segnale "on" emesso dai pulsanti nel gruppo i cui stati sono cambiati. Ad esempio, una fessura che reagisce ai segnali emessi dai pulsanti appena controllato ma che ignora segnali dai pulsanti che sono stati incontrollato può essere implementato utilizzando il seguente schema:

void MyWidget::reactToToggle(bool checked) 
{ 
    if (checked) { 
     // Examine the new button states. 
     ... 
    } 
} 

http://qt-project.org/doc/qt-4.8/qcheckbox.html

Problemi correlati