22 สิงหาคม 2557

Published สิงหาคม 22, 2557 by with 1 comment

สร้าง GUI ด้วย PySide ตอนที่ 6: Message Box

สวัสดีทุกท่านครับ บทความนี้ผมจะพูดถึงเรื่อง  Message Box ใน PySide ครับ Message Box คือ กล่องข้อความ เป็นกล่องข้อความโต้ตอบกับผู้ใช้แเมื่อมีการกระทำเกิดขึ้นครับ ตัวอย่างเช่น คุณกำลังพิมพ์เอกสารในโปรแกรมพิมพ์เอกสารแล้วคุณไปกด X โดยที่ไม่ได้บันทึกจะขึ้นข้อความตอบโต้ว่า
"คุณต้องการบันทึกไหม"
ประมาณนี้ครับ เรามาเริ่มต้นเขียนโค้ดกันเลยนะครับ ในการใช้ Message Box นั้นเราต้องใช้ QMessageBox ครับ มีลักษณะการใช้งานตามตัวอย่างต่อไปนี้ครับ
ตัวอย่างที่ 10
import sys
from PySide.QtCore import *
from PySide.QtGui import *



class MessageBox(QWidget):
     def __init__(self, parent=None):
         QWidget.__init__(self, parent)
         self.setGeometry(300, 300, 250, 150)
         self.setWindowTitle('กล่องข้อความ') #ชื่อหัวของโปรแกรม


     def closeEvent(self, event): #กำหนดการกระทำเมื่อมีความต้องการปิดโปรแกรม
         reply = QMessageBox.question(self, 'Message',
             "คุณแน่ใจนะว่าคุณต้องการปิดโปรแกรม?", QMessageBox.Yes,
QMessageBox.No)
         if reply == QMessageBox.Yes:
             event.accept() #ยันยืนการกระทำคือปิดโปรแกรมครับ
         else:
             event.ignore() #ไม่สนใจการกระทำ คือ ไม่ปิดโปรแกรมครับ


app = QApplication(sys.argv)
qb = MessageBox() #อ้างอิงคลาส MessageBox
qb.show() #แสดงผล
sys.exit(app.exec_())
อธิบาย QMessageBox.question กำหนดข้อความประโยคคำถาม  แล้วกำหนดให้มี QMessageBox.Yes นั้นคือปุ่ม Yes ส่วน QMessageBox.No นั้นคือปุ่ม No ครับ
ผลลัพธ์
เมื่อยังไม่ได้คลิก X เพื่อปิดโปรแกรม
เมื่อคลิก X เพื่อปิดโปรแกรม

ติดตามบทความต่อไปนะครับ :)
ขอบคุณครับ

1 ความคิดเห็น:

  1. ตอนที่ 5 หายครับ -..- ข้ามเลข 5 ไปเลยครับ
    ปล. ลืมครับ

    ตอบลบ

แสดงความคิดเห็นได้ครับ :)