บรรยายเกี่ยวกับ PyQt: QTimer และการแก้ไข Style Sheets
บทนำ
- ต่อเนื่องจากหัวข้อ PyQt ของวันก่อนหน้า
- เน้นไปที่คลาสต่างๆ ที่สำคัญสำหรับการพัฒนาแอปพลิเคชัน Python ด้วย PyQt
คลาสของ PyQt ที่ครอบคลุม
- QTimer
- QTimer และ Style Sheets
- การจัดการ Layouts
- การปิดการใช้งานวัตถุ
QTimer
- QTimer เป็นคลาสของ PyQt สำหรับการจัดการตัวจับเวลา
- คล้ายกับตัวจับเวลาใน microcontrollers เช่น Arduino สามารถปลุกและเรียกใช้ฟังก์ชันเฉพาะในช่วงเวลาที่สม่ำเสมอ
- ข้อดี: ทำงานอย่างอิสระจากโปรแกรมหลัก
- การใช้งานทั่วไป: ในแอปพลิเคชัน PyQt สำหรับการจับเวลาเหตุการณ์
- ขั้นตอนในการใช้งาน QTimer:
- สร้างวัตถุ
QTimer
: mytimer = QCore.QTimer()
- เชื่อมตัวจับเวลาเข้ากับฟังก์ชันเฉพาะด้วย
.timeout.connect(function_name)
- เริ่มต้นตัวจับเวลาด้วย
.start(interval)
หรือกำหนดค่า interval และจากนั้นเริ่มต้น
ตัวอย่างโค้ดสำหรับ QTimer
- สร้างโปรเจคใหม่ที่รวม QTimer
- ตัวอย่างฟังก์ชันที่พิมพ์ข้อความทุกวินาที
self.autoPrint = QCore.QTimer()
self.autoPrint.timeout.connect(self.print_hello)
self.autoPrint.start(1000)
- ตัวอย่างการเริ่มต้นด้วย intervals
self.autoPrint.setInterval(1000)
self.autoPrint.start()
- ตัวอย่างการปิดการใช้งานตัวจับเวลา
self.autoPrint.stop()
การแก้ไข Style Sheets
- วัตถุประสงค์: ปรับแต่งรูปลักษณ์ของ widgets ภายในแอปพลิเคชัน
- วิธีการแก้ไข:
- ใช้เครื่องมือ Q-Designer โดยตรง
- ผ่านโค้ด ด้วยคุณสมบัติเช่น
setStyleSheet
- ตัวอย่าง: เปลี่ยนสีพื้นหลังของปุ่ม
background-color: rgb(28, 251, 161);
- การเปลี่ยนสีแบบไดนามิกของแบนเนอร์ warning เป็นการประยุกต์ใช้จริง
Layouts
- Layouts: จัดวาง widgets ภายในแอปอย่างเป็นระเบียบและตอบสนอง
- ประเภทที่พบบ่อย:
- ตั้งตรง
- แนวนอน
- Grid
- Tab Widgets (ประกอบด้วย widgets อื่นๆ ในแท็ป)
- ตัวอย่างโค้ดสำหรับ Tab Widget:
self.tabWidget = QTabWidget()
self.tabWidget.addTab(self.first_tab, "Tab 1")
self.tabWidget.addTab(self.second_tab, "Tab 2")
การปิดการใช้งานวัตถุ
- วัตถุประสงค์: ป้องกันไม่ให้ผู้ใช้โต้ตอบกับ widgets บางตัวในสถานการณ์เฉพาะ
- โค้ดสำหรับปิดการใช้งานและเปิดการใช้งาน widgets:
self.wid.setEnabled(False) # ปิดการใช้งาน
self.wid.setEnabled(True) # เปิดการใช้งาน
สรุป
- คำแนะนำในการใช้คลาสและเทคนิคเหล่านี้ในโปรเจคของตนเอง
- เชิญชวนให้นักศึกษาฝึกฝนด้วยตัวอย่างที่จัดมาให้และพัฒนาแอป PyQt ของตนเอง
Q&A และแบบฝึกหัด
- แบบฝึกหัดปฏิบัติเพื่อความเข้าใจในแนวคิดที่เรียนรู้
- เป้าหมายที่ปรับให้เหมาะสมกับความต้องการของนักศึกษา