Základním principem tvorby aplikací s GUI je řízení programu událostmi.
Netýká se však pouze GUI, je to obecnější pojem označující typ asynchronního programování, kdy je:
tok programu řízen událostmi;
události nastávají obvykle určitou uživatelskou akcí - klik či pohyb myši, stisk tlačítka...;
událostmi řízené aplikace musí být většinou programovány jako vícevláknové (i když spouštění vláken obvykle explicitně programovat nemusíme).