probablement ce que je demande est très facile, mais je suis coincé! :(QT et les cases à cocher problème
i ont un QWidget
dans lequel je charge un QGridLayout
dans lequel j'ajouter un certain nombre de QCheckBox
« es
je ne peux pas sembler comprendre comment attraper le signal ChangeState des cases à cocher ... .
les cases à cocher sont ajoutées dans une boucle, dans laquelle je crée une nouvelle QCheckBox qui et en ajoutant comme un widget à l'QGridLayout ...
que dois-je connecter? chaque bouton de changent le signal à ma fente personnalisée, ou som Ething autre?
le code que j'utilise est
QGridLayout *myLayout = new QGridLayout;
for (int i=0; i<(int)m_List.size(); i++)
{
QCheckBox *button = new QCheckBox;
button->setText(m_List[i].m_strName.c_str());
button->setIcon(QIcon(m_List[i].m_strThumbNailPath.c_str()));
button->setIconSize(QSize(50, 50));
button->setCheckable(true);
myLayout->addWidget(button);
connect(button, SIGNAL(stateChanged), this, SLOT(checkboxStateChanged));
}
myLayout->setRowStretch(2, 10);
myLayout->setColumnStretch(2, 10);
QWidget *myWidget = new QWidget;
myWidget->setLayout(myLayout);
myToolbox = new QToolBox;
myToolbox->addItem(myWidget, "Options");
il affiche correctement les cases à cocher, je peux vérifier et les décocher, mais je ne peux pas attraper le signal ... ce que je suis absent? Merci!
En fait, OP devrait probablement se connecter à 'SIGNAL (toggled (bool))'. 'SIGNAL (stateChanged (int))' n'est intéressant que pour les cases à cocher tristate (rarement utilisées). Et oui, [la documentation] (http://doc.trolltech.com/4.7/qcheckbox.html) est un peu trompeuse ici ('toggled (bool)' est défini dans 'QAbstactButton' à la place). –
Eh bien, je viens de répondre à sa question (-: – snoofkin
Je souhaite, pour chaque réponse utilisant des signaux/slots de style ancien, certains des utilisateurs les plus avancés passeraient et répondraient en utilisant de nouveaux signaux et slots de style. – neuronet