versiones guia español actualizar c++ qt widget keypress qtestlib

c++ - guia - qgis español



¿Cómo se obtienen los hijos de un widget en Qt? (2)

Es posible que desee colocar un filtro de eventos personalizado en su widget para capturar el evento clave y ver qué le sucede realmente.

Estoy simulando keyPresses a una aplicación a través de la función KeyPress de Qt. Todas las KeyPresses funcionan bien. Sin embargo, cuando paso un QT::Key_Enter que se supone que debe presionar el botón OK de la ventana actualmente activa, o QT::Key_Cancel para el botón de cancelar, no hace nada.

Estoy pensando que tal vez, porque estos botones no tienen el foco, y la ventana principal lo tiene. ¿Cómo se obtiene a los niños de una ventana? o bien, busque el botón Aceptar o Cancelar en él para que pueda configurarlo como la Ventana activa y luego pasar KeyPresses con éxito?

Yo tengo:

QWidget *pWin = QApplication::activeWindow; QObjectList *pList = pWin->children(); //how do you iterate through the list and find the OK or Cancel button?


Puede usar la función findChild con el nombre del objeto para obtener un elemento findChild específico. También puede utilizar findChildren para obtener todos los elementos findChildren que tengan el mismo nombre y la iteración a través de la lista utilizando foreach o QListIterator .

Para obtener un botón, puede intentar:

QPushButton* button = pWin->findChild<QPushButton*>("Button name");