Comment obtenez-vous un widget enfants dans Qt?
Je suis simuler les touches utilisées pour une application à l'aide de Qt pression de Touche de fonction. Toutes les Touches fonctionnent correctement. Cependant, quand je passe un QT::Key_Enter
qui est censé appuyez sur le bouton OK de la fenêtre actuellement active, ou QT::Key_Cancel
pour le bouton annuler, il ne fait rien.
Je pense peut-être, parce que ces boutons n'ont pas le focus, et la fenêtre parent lui-même l'a. Comment obtenez-vous les enfants de fenêtre? ou plutôt à trouver la touche OK ou le bouton Annuler sur elle de sorte que vous pourrait le définir comme le activeWindow et ensuite passer à des combinaisons de Touches avec succès?
J'ai:
QWidget *pWin = QApplication::activeWindow;
QObjectList *pList = pWin->children();
//how do you iterate through the list and find the OK or Cancel button?
InformationsquelleAutor Owen | 2010-11-30
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser le
findChild
fonction avec le nom de l'objet pour obtenir un enfant en particulier.Vous pouvez utiliser trop
findChildren
pour obtenir tous les enfants qui ont le même nom et le parcourir la liste à l'aide deforeach
ouQListIterator
.Pour obtenir un bouton, vous pouvez essayer:
Vous pourriez vouloir mettre un custom filtre d'événement sur votre widget pour capturer l'événement et de voir ce qui se passe vraiment à elle.