วันศุกร์ที่ 5 พฤศจิกายน พ.ศ. 2553

Signal และ Slots ที่ใช้ใน Qt


การใช้งานใน Qt นั้นจะมีกลุ่มตัวแปร 2 แบบที่ใช้งาน ซึ่งแต่ละแบบเราก็ควรที่จะเลือกให้ใช้เหมาะสม ผลกระทบผมก็ยังไม่รู้นะครับว่ามีส่งผลกระทบตรงไหนบ้าง เพราะัยังไม่รู้เหมือนกัน ดังนั้น ผมขออธิบายพอคร่าว ๆ ก่อน ดังนี้ครับ


       Signal                                            
เป็น method ที่เรียกใช้งานแล้วทำหน้าที่ส่งออกข้อมูลมากกว่าจะทำการประมวลผล จากมุมมองของ programmer ต้องประกาศ prototype ของ signals เป็นแบบส่งออกเท่านั้น และประกาศเอาไว้ในส่วนของ signals of Class



        Slots                                               
เป็นสมาชิกของ function ที่สามารถเรียกเป็นคำตอบของ signal ที่จะเป็นผลลัพธ์ส่งออกไป คุณจะบอก compiler ด้วยการนำ slots ไปไว้ในส่วนของ public slots, protected slots | private slots ระดับการเข้าถึง slots จะปกป้อง slots เมื่อมีการเรียกใช้ method ดังนั้นเราสามารถอ้างถึง slots ที่เป็น private | protected จากคลาสอื่น ได้ผ่านทาง signal


ยกตัวอย่างการใช้งานดังนี้

เปิดโปรแกรมขึ้นมา
Open Qt Creator


ทำการสร้าง Project แบบ Qt C++ Project -> Qt Console Application แล้วก็เลือกที่ Choose...

Create New Project

New Project
แล้วสร้างไฟล์ แบบ C++ Source File และ C++ Header File และจะได้โครงสร้างไฟล์ดังภาพด้านล่าง

New Files and Classes
C++ Header File
MyClass.cpp
main.cpp


หลังจากนั้นก็ทดสอบคำสั่งและได้ผลลัพธ์ดังนี้

ผลการรันโปรแกรม
โปรแกรมนี้เป็นการทดสอบการฟังก์ชัน Setter and Getter เพื่อให้เห็นระดับการเข้าถึงตัวแปร และหน้าที่และความสำคัญของ Signal and Slots โอกาสหน้าเดี๋ยวหาเรื่องใหม่มาพูดครับ ...

ไม่มีความคิดเห็น:

แสดงความคิดเห็น