Zasadniczo system okienkowy systemu operacyjnego ujawnia niektóre wywołania API, które można wykonywać w celu wykonania zadań takich jak utworzenie okna lub umieszczenie przycisku w oknie. Zasadniczo otrzymujesz zestaw plików nagłówkowych i możesz wywoływać funkcje w tych zaimportowanych bibliotekach, tak jak zrobiłbyś to ze stdlib i printf
.
Każdy system operacyjny ma własny zestaw narzędzi GUI, pakiet plików nagłówkowych i wywołań interfejsu API oraz własny sposób działania. Istnieją również zestawy narzędzi dla wielu platform, takie jak GTK , Qt i wxWidgets, które pomagają tworzyć programy działające w dowolnym miejscu. Osiągają to poprzez takie same wywołania API na każdej platformie, ale inną implementację dla tych funkcji API, które wywołują rodzime wywołania API OS.
Jedną wspólną cechą, która różni się od programu CLI, jest pętla zdarzeń. Podstawowa idea jest nieco skomplikowana i trudna do skompresowania, ale w gruncie rzeczy oznacza to, że w twojej głównej klasie / głównej funkcji nie dzieje się nic wielkiego, z wyjątkiem:
- sprawdź kolejkę zdarzeń, czy są jakieś nowe zdarzenia
- jeśli tak, wyślij te zdarzenia do odpowiednich procedur obsługi
- kiedy skończysz, przywróć kontrolę wydajności do systemu operacyjnego (zwykle z jakimś specjalnym wywołaniem funkcji „uśpienia” lub „wybierz” lub „wydajność”)
- wtedy funkcja fed powróci, gdy system operacyjny jest gotowy, a ty masz kolejną pętlę.
Istnieje wiele zasobów na temat programowania opartego na zdarzeniach. Jeśli masz jakiekolwiek doświadczenie z JavaScriptem, jest to ten sam podstawowy pomysł, z tym wyjątkiem, że ty, scripter, nie masz dostępu ani kontroli nad samą pętlą zdarzeń, ani jakie zdarzenia są, jedynym zadaniem jest pisanie i rejestrowanie programów obsługi.
Należy pamiętać, że programowanie GUI jest niezwykle skomplikowane i ogólnie trudne. Jeśli masz taką opcję, w rzeczywistości o wiele łatwiej jest po prostu zintegrować wbudowany serwer WWW z programem i mieć interfejs oparty na HTML / web. Jedynym wyjątkiem, z jakim się spotkałem, jest program Apple Cocoa + Xcode + konstruktor interfejsu + samouczki, które sprawiają, że jest to najłatwiej dostępne środowisko dla osób, które nie znały programowania GUI.