หน่วยที่ 2 EP.3: ประมวลผลข้อมูลและแจ้งเตือน (Event Handling & Message Box)
  • By Admin
  • 3
  • 9 เม.ย. 2569

หน่วยที่ 2 EP.3: ประมวลผลข้อมูลและแจ้งเตือน (Event Handling & Message Box)

เปลี่ยนหน้าต่างโปรแกรมธรรมดาให้มีชีวิต! เรียนรู้วิธีการเขียนโค้ด "จัดการเหตุการณ์ (Event Handling)" เพื่อสั่งให้ปุ่มทำงาน พร้อมเทคนิคการดึงข้อมูลที่ผู้ใช้พิมพ์ส่งเข้ามา (Input) และการใช้ Message Box เด้งหน้าต่างแจ้งเตือนสุดเท่ เพื่อยืนยันความถูกต้องของข้อมูลก่อนส่งเข้าสู่ระบบ Big Data

⚡ หน่วยที่ 2 EP.3: ประมวลผลข้อมูลและแจ้งเตือน

Event Handling & Message Box

ใน EP ที่แล้วเราสร้างแบบฟอร์มที่มีช่องกรอกชื่อและปุ่มกดได้สำเร็จ แต่ถ้าลองกดปุ่มดูจะพบว่า "มันยังไม่เกิดอะไรขึ้นเลย!" นั่นเป็นเพราะเรายังไม่ได้ใส่ "สมอง" หรือสร้างเหตุการณ์ (Event) ให้กับปุ่มนั้นครับ

🧠 1. สร้างสมองให้ปุ่มกด (Event Handling)

การทำให้ปุ่มทำงานได้ เราต้องสร้าง ฟังก์ชัน (Function) หรือชุดคำสั่งเตรียมไว้ก่อน จากนั้นค่อยเอาฟังก์ชันนั้นไปผูกติดกับปุ่มด้วยคำสั่ง command ครับ

ตัวอย่างการผูกคำสั่ง:
# 1. สร้างฟังก์ชันชื่อ save_data() เตรียมไว้
def save_data():
    print("กำลังบันทึกข้อมูล...")

# 2. เอาฟังก์ชันไปใส่ในปุ่ม (ห้ามใส่วงเล็บต่อท้ายชื่อฟังก์ชันในปุ่มนะครับ!)
btn = tk.Button(text="บันทึก", command=save_data)

📥 2. วิธีดึงข้อความที่ผู้ใช้พิมพ์ (The .get() method)

เมื่อผู้ใช้พิมพ์ข้อมูลลงในช่อง Entry เราสามารถใช้คำสั่ง .get() เพื่อดูดข้อมูลนั้นออกมาเก็บไว้ในตัวแปร และนำไปประมวลผลต่อ (เช่น ส่งเข้าฐานข้อมูล Big Data) ได้ทันที

user_input = entry_name.get() (แปลว่า: ไปเอาข้อความจากช่องที่ชื่อ entry_name มาเก็บไว้ในตัวแปร user_input)

🔔 3. เด้งหน้าต่างแจ้งเตือน (Message Box)

เพื่อยืนยันว่าเราได้รับข้อมูลแล้ว เราควรมีหน้าต่างป๊อปอัป (Pop-up) เด้งขึ้นมาบอกผู้ใช้งานครับ ใน Tkinter เราต้องดึงเครื่องมือนี้มาเพิ่มโดยพิมพ์ from tkinter import messagebox ไว้ที่บรรทัดบนสุดของโค้ดครับ

✅ showinfo

messagebox.showinfo("หัวข้อ", "ข้อความ")
ใช้สำหรับแจ้งข้อมูลทั่วไป หรือยืนยันความสำเร็จ

❌ showerror

messagebox.showerror("หัวข้อ", "ข้อความ")
ใช้สำหรับแจ้งเตือนเมื่อเกิดข้อผิดพลาด (เช่น ลืมกรอกชื่อ)

👨‍💻 4. โค้ดฉบับสมบูรณ์ (ประกอบร่าง!)

มาดูตัวอย่างการนำความรู้จาก EP.2 และ EP.3 มารวมกัน เพื่อสร้างแอปเก็บข้อมูลที่ทำงานได้จริงกันครับ!

import tkinter as tk
from tkinter import messagebox # เรียกใช้เครื่องมือแจ้งเตือน

# --- ส่วนของฟังก์ชัน (สมองของโปรแกรม) ---
def save_data():
    # 1. ดูดข้อมูลจากช่อง Entry มาเก็บไว้ในตัวแปร name
    name = entry_name.get() 
    
    # 2. ตรวจสอบเงื่อนไขว่าพิมพ์มาหรือเปล่า?
    if name == "":
        messagebox.showerror("ผิดพลาด", "กรุณากรอกชื่อก่อนกดบันทึก!")
    else:
        messagebox.showinfo("สำเร็จ", f"บันทึกข้อมูลของ {name} เรียบร้อยแล้ว!")

# --- ส่วนของการสร้างหน้าจอ (GUI) ---
frame = tk.Tk()
frame.geometry("300x200")
frame.title("โปรแกรมรับข้อมูล")

tk.Label(frame, text="ชื่อของคุณคืออะไร?").pack(pady=10)

entry_name = tk.Entry(frame)
entry_name.pack(pady=5)

# ผูกปุ่มเข้ากับฟังก์ชัน save_data ด้วย command
tk.Button(frame, text="บันทึก", bg="orange", command=save_data).pack(pady=15)

frame.mainloop()
            

✍️ มินิควิซ ทบทวนความรู้ EP.3

ทดสอบความเข้าใจเรื่องการจัดการเหตุการณ์และการแจ้งเตือน

ข้อที่ 1: การทำให้ปุ่ม (Button) สามารถคลิกแล้วสั่งงานฟังก์ชันที่เราเขียนไว้ได้ จะต้องใช้พารามิเตอร์ใด?

ข้อที่ 2: หากนักเรียนสร้างช่องรับข้อความไว้ชื่อว่า entry_age นักเรียนจะใช้คำสั่งใดเพื่อ "ดึงข้อมูลอายุ" ที่ผู้ใช้พิมพ์เข้ามาไปคำนวณต่อ?

ข้อที่ 3: หากต้องการใช้งานหน้าต่างป๊อปอัปแจ้งเตือน (Message Box) ในโปรแกรม จะต้องนำเข้าเครื่องมือด้วยคำสั่งใดก่อนเสมอ?

ข้อที่ 4: คำสั่ง messagebox.showerror() เหมาะสำหรับนำไปใช้ในสถานการณ์ใดมากที่สุด?

ข้อที่ 5: ในมุมมองของการจัดการข้อมูล (Data Management) การเขียนโปรแกรมให้มีระบบเช็กความผิดพลาดและเด้ง Message Box แจ้งเตือนผู้ใช้ มีข้อดีอย่างไร?


แชร์ :

บทเรียนอื่น ๆ