Phần lớn các Bộ công cụ GUI hiện nay sử dụng mô hình Tín hiệu + Slots. Đó là Qt và GTK +, nếu tôi không sai, người tiên phong cho nó.
Bạn biết đấy, các vật dụng hoặc các đối tượng đồ họa (đôi khi cả những vật thể không được hiển thị) gửi tín hiệu đến trình xử lý vòng lặp chính. Trình xử lý vòng lặp chính sau đó gọi các sự kiện , cuộc gọi lại hoặc vị trí được gán cho đối tượng widget / đồ họa đó. Do đó, thường virtual
có các trình xử lý sự kiện mặc định (và trong hầu hết các trường hợp ) đã được bộ công cụ cung cấp để xử lý tất cả các tín hiệu được xác định trước, do đó, không giống như các thiết kế trước đó mà nhà phát triển phải viết toàn bộ vòng lặp chính và trình xử lý cho mỗi và mọi thông báo (nghĩ WINAPI), nhà phát triển chỉ phải lo lắng về các tín hiệu anh ta cần để thực hiện chức năng mới trên.
Bây giờ thiết kế này đang được sử dụng trong hầu hết các bộ công cụ hiện đại theo như tôi biết. Có Qt, GTK +, FLTK, v.v ... Có Java Swing. C # thậm chí có một tính năng ngôn ngữ cho nó (các sự kiện và đại biểu) và Windows Forms đã được phát triển trên thiết kế này. Trong thực tế, trong thập kỷ qua, thiết kế này để lập trình GUI đã trở thành một loại tiêu chuẩn bất thành văn. Vì nó làm tăng năng suất và cung cấp sự trừu tượng lớn hơn.
Tuy nhiên, câu hỏi của tôi là:
Có bất kỳ thiết kế thay thế, đó là song song hoặc thực tế cho lập trình GUI hiện đại?
tức là thiết kế Tín hiệu + Slots, thiết kế duy nhất trong thị trấn? Có khả thi để làm Lập trình GUI với bất kỳ thiết kế nào khác không? Có bất kỳ bộ công cụ GUI hiện đại (tốt nhất là thành công và phổ biến) được xây dựng trên một thiết kế thay thế không?
std::function
, không phải là tín hiệu không đồng bộ. Bên cạnh đó, WinAPI không cung cấpDefWindowProc
đó xử lý thông điệp của Windows như một thực hiện mặc định. Vì vậy, tôi sẽ khẳng định rằng câu hỏi của bạn dựa trên logic thiếu sót.