โปรแกรมตัวอย่างจะเป็นเป็น 3 ส่วนนะครับ ส่วนสีแดง คือส่วนของการแสดงผล (get) ส่วนสีเขียวคือส่วนการเปลี่ยนค่าโดยจะบวกด้วย 1 ไปเรื่อยๆ (set) และส่วนสุดท้ายคือการเปลี่ยนค่าเป็น 1 โดยไม่ส่ง parameter
class ที่สร้างใหม่จะต้องเลือก Base เป็น QObject ด้วยนะครับ
ไฟล์ calculator.h เพิ่ม Q_PROPERTY เพื่อประกาศให้ส่วน QML รู้ว่ามีตัวแปรที่สามารถเข้าถึงได้ จากตัวอย่าง เป็นตัวแปรชื่อ number ถ้าจะอ่านข้อมูลจะเรียกใช้งาน method ชื่อ get_number และถ้าจะเขียนค่าลงที่ตัวแปร number จะเรียกใช้งานผ่าน method set_number ส่วน NOTIFY คือถ้ามี event เปลี่ยนแปลงที่ตัวแปลนี้จะเกิด event ขึ้นกับ QML
ในไฟล์ calculator.h ประกาศตัวแปร Method และ signal ที่ต้องการใช้นะครับ
ตัวแปร num ใช้เก็บตัวเลขที่เราจะบวกนะครับ ประกาศเป็น interger 32 bit
method get_number ใช้อ่านค่าตัวแปร num set_number ใช้กำหนดค่าลงตัวแปร num
signal number_changed เป็น event เวลาที่ค่าตัวเลข num เปลี่ยนแปลง
method do_clear ใช้กำหนดค่าตัวแปร num ให้เท่ากับ 1
ไฟล์ calculator.cpp method ต่างๆ ทำงานแบบนี้ครับ
ไฟล์ main.cpp จะต้อง register type ของ calculator ลงไปให้ QML รู้จัก ซึ่งมีรูปแบบดังนี้
qmlRegisterType<CLASS_NAME>("MODULE_NAME",VERSION,SUB_VERSION,"ELEMENT_NAME")
Note: ELEMENT_NAME ชื่อต้องขึ้นต้นด้วยตัวใหญ่นะครับ
ไฟล์ main.qml ให้ import module calculator โดยใช้ชื่อและ version ของ module
import my.calculator 1.0จากนั้นก็สามารถเรียกใช้งานแบบ element ทั่วไปได้เลยครับ
<< Qt 5.0 Programming IX : Anchor
>> AppStack.cc
0 ความคิดเห็น:
แสดงความคิดเห็น