Pada dasarnya, sistem windowing sistem operasi memaparkan beberapa panggilan API yang dapat Anda lakukan untuk melakukan pekerjaan seperti membuat jendela, atau meletakkan tombol di jendela. Pada dasarnya, Anda mendapatkan seperangkat file header dan Anda dapat memanggil fungsi di pustaka yang diimpor, seperti yang Anda lakukan dengan stdlib danprintf
.
Setiap sistem operasi dilengkapi dengan toolkit GUI sendiri, kumpulan file header, dan panggilan API, dan cara mereka sendiri dalam melakukan sesuatu. Ada juga toolkit lintas platform seperti GTK , Qt , dan wxWidgets yang membantu Anda membangun program yang bekerja di mana saja. Mereka mencapai ini dengan memiliki panggilan API yang sama pada setiap platform, tetapi implementasi yang berbeda untuk fungsi-fungsi API yang memanggil ke panggilan API OS asli.
Satu hal yang mereka semua miliki bersama, yang akan berbeda dari program CLI, adalah sesuatu yang disebut loop peristiwa. Ide dasarnya ada yang agak rumit, dan sulit untuk dikompres, tetapi pada dasarnya itu berarti tidak banyak yang terjadi di kelas utama / fungsi utama Anda, kecuali:
- periksa antrian acara jika ada acara baru
- jika ada, kirim acara tersebut ke penangan yang tepat
- setelah selesai, kontrol kembali ke sistem operasi (biasanya dengan semacam panggilan fungsi "tidur" atau "pilih" atau "hasil")
- maka fungsi hasil akan kembali ketika sistem operasi selesai, dan Anda memiliki lagi di sekitar loop.
Ada banyak sumber daya tentang pemrograman berbasis acara. Jika Anda memiliki pengalaman dengan JavaScript, itu adalah ide dasar yang sama, kecuali bahwa Anda, penulisnya tidak memiliki akses atau kontrol atas loop peristiwa itu sendiri, atau peristiwa apa yang ada, satu-satunya tugas Anda adalah menulis dan mendaftarkan penangan.
Anda harus ingat bahwa pemrograman GUI sangat rumit dan sulit, secara umum. Jika Anda memiliki opsi, sebenarnya jauh lebih mudah untuk hanya mengintegrasikan server web tertanam ke dalam program Anda dan memiliki antarmuka berbasis HTML / web. Satu-satunya pengecualian yang saya temui adalah tutorial Cocoa + Xcode + interface builder + tutorial yang menjadikannya lingkungan yang paling mudah didekati oleh orang-orang yang baru mengenal pemrograman GUI yang pernah saya lihat.