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

Cách lấy chỉ mục tùy chọn đã chọn trong Tkinter Combobox?

Nếu bạn muốn tạo danh sách thả xuống các mục và cho phép người dùng chọn các mục trong danh sách, bạn có thể dùng widget Combobox. Widget Combobox cho phép tạo danh sách thả xuống mà các mục có thể chọn ngay lập tức. Tuy nhiên, nếu bạn muốn lấy chỉ mục của mục đã chọn trong widget combobox, bạn có thể dùng phương thức get(). Phương thức get() trả về số nguyên của mục được chọn, gọi là chỉ mục của mục.

Ví dụ

Hãy xem ví dụ để thấy cách hoạt động. Trong ví dụ này, chúng ta tạo danh sách các ngày trong tuần trong danh sách thả xuống và bất cứ khi nào người dùng chọn ngày từ danh sách thả xuống, nó sẽ in và hiển thị chỉ mục của mục đã chọn trên widget Label. Để in chỉ mục, chúng ta có thể nối chuỗi bằng cách ép kiểu chỉ mục cho trước thành chuỗi.

# Nhập thư viện cần thiết
from tkinter import *
from tkinter import ttk

# Tạo instance của khung hoặc cửa sổ tkinter
win = Tk()

# Thiết lập kích thước cửa sổ
win.geometry("700x350")

# Hàm xóa combobox
def clear_cb():
    cb.set('')

# Định nghĩa Tuple Ngày
days = ('Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat')

# Hàm in chỉ mục tùy chọn đã chọn trong Combobox
def callback(*arg):
    Label(win, text="The value at index " + str(cb.current()) + " is" + " " + str(var.get()), font=('Helvetica 12')).pack()

# Tạo widget combobox
var = StringVar()
cb = ttk.Combobox(win, textvariable=var)
cb['values'] = days
cb['state'] = 'readonly'
cb.pack(fill='x', padx=5, pady=5)

# Thiết lập truy vết cho biến cho trước
var.trace('w', callback)

# Tạo nút để xóa giá trị combobox đã chọn
button = Button(win, text="Clear", command=clear_cb)
button.pack()

win.mainloop()

Kết quả

Chạy mã trên sẽ hiển thị widget combobox với danh sách ngày. Bất cứ khi nào bạn chọn ngày từ danh sách, nó sẽ in chỉ mục và mục tương ứng trên widget label.

Cách lấy chỉ mục tùy chọn đã chọn trong Tkinter Combobox?