J'essaye d'obtenir tous les widgets enfants de bouton d'une fenêtre actuellement active. Les boutons ont été créés via QDialogButtonBox. J'essaie d'obtenir les rôles de chaque bouton afin que je puisse identifier le bouton OK, CANCEL ou SAVE. Cependant, je reçois une erreur avec le code suivant:Comment obtenir le rôle d'un QPushButton créé par un QDialogButtonBox?
QWidget *pWin = QApplication::activeWindow();
QList<QPushButton *> allPButtons = pWin->findChildren<QPushButton *>();
QListIterator<QPushButton*> i(allPButtons);
while(i.hasNext())
{
QDialogButtonBox *pButtonRole = new QDialogButtonBox();
QDialogButtonBox::ButtonRole role = pButtonRole->buttonRole(i.next());
qDebug() << "buttonRole: " << role << endl ;
//the value of role here is -1, which means it's an invalid role...
}
Je reçois une valeur négative lors de l'obtention du rôle du bouton :(
Quelqu'un peut-il me dire ce qui ne va pas avec le code
Ou comment faire jkerian dit, ou si vous utilisez des boutons standard et ont simplement besoin l'un des boutons: QPushButton * ok = buttonBox- > button (QDialogButtonBox :: Ok) –
J'ai essayé QDialogButtonBox pButtonRole = new QDialogButtonBox(); QDialogButtonBox :: ButtonRole rôle = pButtonRole-> buttonRole (i.next()); qDebug() << "buttonRole:" << rôle << endl; mais je reçois un rôle invalide ... -1 ... – Owen