Mayoritas GUI Toolkit saat ini menggunakan model Sinyal + Slot. Itu Qt dan GTK +, kalau saya tidak salah, yang memelopori itu.
Anda tahu, widget atau objek grafis (kadang-kadang bahkan yang tidak ditampilkan) mengirim sinyal ke pengendali loop utama. Handler loop utama kemudian memanggil peristiwa , callback atau slot yang ditetapkan untuk widget / objek grafis. Biasanya ada virtual
pengendali event default (dan dalam kebanyakan kasus ) sudah disediakan oleh toolkit untuk menangani semua sinyal yang telah ditentukan, oleh karena itu, tidak seperti desain sebelumnya di mana pengembang harus menulis seluruh loop-utama dan handler untuk masing-masing dan setiap pesan sendiri (pikirkan WINAPI), pengembang hanya perlu khawatir tentang sinyal yang ia butuhkan untuk mengimplementasikan fungsionalitas baru.
Sekarang desain ini digunakan di sebagian besar toolkit modern sejauh yang saya tahu. Ada Qt, GTK +, FLTK dll. Ada Java Swing. C # bahkan memiliki fitur bahasa untuknya (acara dan delegasi), dan Formulir Windows telah dikembangkan pada desain ini. Bahkan, selama dekade terakhir, desain untuk pemrograman GUI ini telah menjadi semacam standar tidak tertulis. Karena meningkatkan produktivitas dan memberikan abstraksi yang lebih besar.
Namun, pertanyaan saya adalah:
Apakah ada desain alternatif, yang paralel atau praktis untuk pemrograman GUI modern?
yaitu apakah desain Sinyal + Slot, satu-satunya yang praktis di kota? Apakah layak untuk melakukan Pemrograman GUI dengan desain lain ? Apakah ada toolkit GUI modern (lebih disukai sukses dan populer) yang dibangun berdasarkan desain alternatif?
std::function
, bukan sinyal asinkron. Selain itu, WinAPI tidak memberikanDefWindowProc
yang memproses pesan Windows sebagai implementasi standar. Jadi saya akan berpendapat bahwa pertanyaan Anda didasarkan pada logika yang salah.