Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

วิธีสร้าง Popup Menu ใน Tkinter


เราต้องการ menubar ในแอปพลิเคชันที่ต้องการปฏิสัมพันธ์ผู้ใช้ เมนูสามารถสร้างได้โดยการสร้างออบเจกต์ Menu(parent) พร้อมกับรายการเมนู Popup Menu สามารถสร้างได้โดยการสร้าง tk_popup(x_root, y_root, False) ซึ่งทำให้เมนูมองเห็นได้บนหน้าจอ ตอนนี้เราจะเพิ่มอีเวนต์ที่สามารถทริกเกอร์ผ่านปุ่มเมาส์ (Right Click) เมธอด grab_release() ตั้งค่าการปล่อยปุ่มเมาส์เพื่อยกเลิก popup menu

ตัวอย่าง

# นำเข้าไลบรารีที่จำเป็น
from tkinter import *
from tkinter import ttk

# สร้างอินสแตนซ์ของ Tkinter frame
win = Tk()
# กำหนดขนาดของ Tkinter library
win.geometry("700x350")

label = Label(win, text="Right-click anywhere to display a menu", font=('Helvetica 18'))
label.pack(pady=40)

# เพิ่ม Menu popup
popup = Menu(win, tearoff=0)

# เพิ่ม Menu Items
popup.add_command(label="New")
popup.add_command(label="Edit")
popup.add_separator()
popup.add_command(label="Save")

def menu_popup(event):
    # แสดง popup menu
    try:
        popup.tk_popup(event.x_root, event.y_root, 0)
    finally:
        # ปล่อย grab
        popup.grab_release()

win.bind("", menu_popup)
button = ttk.Button(win, text="Quit", command=win.destroy)
button.pack()

mainloop()

ผลลัพธ์

การรันโค้ดจะแสดงหน้าต่างที่มี Label และปุ่ม เมื่อคลิกขวาเมาส์ Popup menu จะปรากฏในหน้าต่าง

วิธีสร้าง Popup Menu ใน Tkinter