Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Cách tạo hộp thoại modal trong tkinter

Hộp thoại (Dialog Boxes) là thành phần thiết yếu của bất kỳ ứng dụng nào. Nó thường được dùng để tương tác giữa người dùng và giao diện ứng dụng. Chúng ta có thể tạo hộp thoại cho ứng dụng tkinter bằng cửa sổ Toplevel và các widget khác. Cửa sổ toplevel hiển thị nội dung phía trên tất cả các cửa sổ khác. Do đó, chúng ta có thể thêm nhiều nội dung vào cửa sổ toplevel để xây dựng hộp thoại.

Ví dụ

Trong ví dụ này, chúng ta tạo một hộp thoại modal gồm hai phần:

  • Khởi tạo cửa sổ Toplevel.
  • Định nghĩa hàm cho sự kiện Popup Dialog.
  • Thêm widget vào cửa sổ Toplevel.
  • Định nghĩa hàm cho các tùy chọn Dialog.
# Import thư viện cần thiết
from tkinter import *
from tkinter import ttk

# Tạo instance của frame tkinter
win = Tk()

# Đặt kích thước cửa sổ
win.geometry("700x350")

style = ttk.Style()
style.theme_use('clam')

# Định nghĩa hàm thực hiện lựa chọn
def choice(option):
    pop.destroy()
    if option == "yes":
        label.config(text="Hello, How are You?")
    else:
        label.config(text="You have selected No")
        win.destroy()

def click_fun():
    global pop
    pop = Toplevel(win)
    pop.title("Confirmation")
    pop.geometry("300x150")
    pop.config(bg="white")
    # Tạo Label Text
    label = Label(pop, text="Would You like to Proceed?",
                  font=('Aerial', 12))
    label.pack(pady=20)
    # Thêm Frame
    frame = Frame(pop, bg="gray71")
    frame.pack(pady=10)
    # Thêm Button để lựa chọn
    button1 = Button(frame, text="Yes", command=lambda: choice("yes"),
                     bg="blue", fg="white")
    button1.grid(row=0, column=1)
    button2 = Button(frame, text="No", command=lambda: choice("no"),
                     bg="blue", fg="white")
    button2.grid(row=0, column=2)

# Tạo widget Label
label = Label(win, text="", font=('Aerial', 14))
label.pack(pady=40)

# Tạo nút Tkinter
ttk.Button(win, text="Click Here", command=click_fun).pack()

win.mainloop()

Kết quả

Khi chạy mã trên, sẽ hiển thị một cửa sổ với nút để mở hộp thoại modal.

Cách tạo hộp thoại modal trong tkinter

Nhấn nút sẽ mở hộp thoại Modal.

Cách tạo hộp thoại modal trong tkinter