Si ha trabajado con kits de herramientas GUI, sabrá que hay un bucle de evento/bucle principal que se debe ejecutar después de que se haya completado todo, y que mantendrá la aplicación viva y receptiva a diferentes eventos. Por ejemplo, para Qt, podría hacer esto en main():¿Cómo implementaría un bucle de evento básico?
int main() {
QApplication app(argc, argv);
// init code
return app.exec();
}
que en este caso, app.exec() es el principal de circuito de la aplicación.
La manera obvia de implementar este tipo de bucle sería:
void exec() {
while (1) {
process_events(); // create a thread for each new event (possibly?)
}
}
Pero esto limita la CPU al 100% y es practicamente inútil. Ahora, ¿cómo puedo implementar un ciclo de eventos que responda sin consumir la CPU por completo?
Las respuestas son apreciadas en Python y/o C++. Gracias.
Nota al pie: Por el bien de aprender, implementaré mis propias señales/ranuras, y las usaría para generar eventos personalizados (por ejemplo, go_forward_event(steps)
). Pero si sabe cómo puedo usar los eventos del sistema manualmente, me gustaría saberlo también.
Creo que se puede profundizar en el código fuente de Qt y ver exactamente lo que están haciendo en exec(). Eso probablemente te dará algunos buenos consejos. – JimDaniel