GUI Toolkits ส่วนใหญ่ทุกวันนี้ใช้รูปแบบสัญญาณ + สล็อต มันเป็น Qt และ GTK + ถ้าฉันไม่ผิดใครเป็นผู้บุกเบิก
คุณรู้หรือไม่ว่าวิดเจ็ตหรือวัตถุกราฟิก (บางครั้งแม้แต่รายการที่ไม่ได้แสดง) จะส่งสัญญาณไปยังตัวจัดการหลักของลูป ตัวจัดการหลักของวงแล้วเรียกเหตุการณ์ , การเรียกกลับหรือช่องที่ได้รับมอบหมายสำหรับเครื่องมือวัตถุที่ / กราฟิก โดยปกติจะมีvirtual
ตัวจัดการเหตุการณ์เริ่มต้น (และในกรณีส่วนใหญ่) ชุดเครื่องมือสำหรับการจัดการสัญญาณที่กำหนดไว้ล่วงหน้าทั้งหมดซึ่งแตกต่างจากการออกแบบก่อนหน้านี้ที่ผู้พัฒนาต้องเขียนทั้ง main-loop และ handler สำหรับแต่ละข้อความ (คิดว่า WINAPI) ผู้พัฒนาเพียง แต่ต้องกังวลเกี่ยวกับสัญญาณที่เขาต้องการในการใช้งานฟังก์ชั่นใหม่
ตอนนี้การออกแบบนี้ถูกใช้ในชุดเครื่องมือที่ทันสมัยที่สุดเท่าที่ฉันรู้ มี Qt, GTK +, FLTK เป็นต้นมี Java Swing C # มีคุณสมบัติภาษาสำหรับมัน (เหตุการณ์และผู้รับมอบสิทธิ์) และ Windows Forms ได้รับการพัฒนาในการออกแบบนี้ ในความเป็นจริงในทศวรรษที่ผ่านมาการออกแบบสำหรับการเขียนโปรแกรม GUI นี้ได้กลายเป็นมาตรฐานที่ไม่ได้เขียนไว้ เนื่องจากมันช่วยเพิ่มผลผลิตและให้สิ่งที่เป็นนามธรรมมากขึ้น
อย่างไรก็ตามคำถามของฉันคือ:
มีการออกแบบทางเลือกอื่นใดที่ขนานกันหรือเป็นประโยชน์สำหรับการเขียนโปรแกรม GUI ที่ทันสมัย?
นั่นคือการออกแบบสัญญาณ + สล็อตสิ่งเดียวที่ใช้ได้ในเมือง? เป็นไปได้ไหมที่จะทำการเขียนโปรแกรม GUI ด้วยการออกแบบอื่น ๆ ชุดเครื่องมือ GUI ที่ทันสมัย (ประสบความสำเร็จและเป็นที่นิยม) ชุดเครื่องมือที่สร้างขึ้นบนการออกแบบทางเลือกหรือไม่?
std::function
, ไม่ได้เป็นสัญญาณไม่ตรงกัน นอกจากนี้ WinAPI ยังให้การDefWindowProc
ประมวลผลข้อความ Windows เป็นการใช้งานเริ่มต้น ดังนั้นฉันจะวางตัวว่าคำถามของคุณอยู่บนพื้นฐานของตรรกะที่มีข้อบกพร่อง