I'm simulating keyPresses to an application through Qt's KeyPress function. All the KeyPresses work fine. However when I pass a QT::Key_Enter
which is supposed to press the OK button of the currently active window, or QT::Key_Cancel
for the cancel button, it does nothing.
I'm thinking maybe, because these buttons don't have the focus, and the parent window itself has it. How do you get the children of a window? or rather find the OK or Cancel button on it so you could set it as the activeWindow and then pass KeyPresses successfully?
I have:
QWidget *pWin = QApplication::activeWindow;
QObjectList *pList = pWin->children();
//how do you iterate through the list and find the OK or Cancel button?
You can use the findChild
function with the object name to get a specific children.
You can use too findChildren
to get all children that have the same name and the iterate through the list using foreach
or QListIterator
.
To get a button you can try:
QPushButton* button = pWin->findChild<QPushButton*>("Button name");