event loop to jest jakaś pętla w programie która czeka na zdarzenia ( np. kliknięcie przycisku )?
Mniej więcej. Nie wiem jak to wygląda na Linuksie, ale pod Windowsem najprostsza możliwa pętla zdarzeń składa się z dwóch wywołań Win32 API:
while (GetMessage(...))
DispatchMessage(...);
Podobna pętla (bardziej rozbudowana oczywiście) jest zawarta w Qt. Funkcja GetMessage jest blokująca i czeka na zdarzenie (komunikat). DispatchMessage przekazuje odebrany komunikat do procedury okna (window procedure), która też jest częścią Qt i tam dopiero pojawia się obsługa odpowiednich sygnałów i slotów.
Oznacza to że kiedy program nic nie robi i nic się z nim nie dzieje, przez większość czasu wisi wewnątrz GetMessage¹.
A z drugiej strony, większość napisanego przez nas kodu jest wywoływana pośrednio przez DispatchMessage.
¹) nie analizowałem źródeł Qt i nie robiłem pomiarów - nie musi to być prawda.