Tiện ích Tkinter Combobox là một trong những tiện ích hữu ích để triển khai các menu thả xuống trong một ứng dụng. Nó sử dụng sự kết hợp của tiện ích Entry và tiện ích ListBox ở trên cùng của nó. Chúng ta có thể chọn các mục trong Menu bằng cách gõ tên mục (nếu nó tồn tại trong Danh sách menu) vào trường Entry. Tuy nhiên, đôi khi, có thể có những trường hợp chúng ta cần sử dụng tính năng tự động hoàn thành để chọn các mục trong menu.
Để tạo một Combobox tự động hoàn thành, trước tiên chúng ta sẽ tạo một Listbox để liệt kê các menu và một tiện ích Entry để hiển thị Menu đã chọn. Bạn có thể liên kết sự kiện "Keyrelease" với tiện ích nhập cảnh để tìm kiếm một từ khóa cụ thể trong danh sách. Nếu mục tồn tại, chúng tôi sẽ cập nhật tiện ích Hộp danh sách.
Ví dụ
Trong ví dụ này, chúng tôi sẽ tạo hai hàm như vậy,
- Hàm kiểm tra (e) sẽ tìm xem mục đã nhập có tồn tại trong danh sách hay không. Nếu mục khớp với từ khóa đã nhập, chúng tôi sẽ cập nhật tiện ích Mục nhập bằng cách chèn dữ liệu cụ thể.
- Một chức năng cập nhật (dữ liệu) sẽ cập nhật hộp Mục nhập bằng cách chèn giá trị vào tiện ích Mục nhập.
# Import the Required libraries from tkinter import * from tkinter import ttk # Create an instance of tkinter frame or window win= Tk() # Set the size of the window win.geometry("700x350") # Set the title of the window win.title("Combobox- TutorialsPoint") # Update the Entry widget with the selected item in list def check(e): v= entry.get() if v=='': data= values else: data=[] for item in values: if v.lower() in item.lower(): data.append(item) update(data) def update(data): # Clear the Combobox menu.delete(0, END) # Add values to the combobox for value in data: menu.insert(END,value) # Add a Label widget label= Label(win, text= "Demo Combobox Widget", font= ('Helvetica 15 bold'), background= "green3") label.pack(padx= 10, pady= 25) # Add a Bottom Label text= Label(win, text="Select a Programming Language") text.pack(padx= 15,pady= 20) # Create an Entry widget entry= Entry(win, width= 35) entry.pack() entry.bind('<KeyRelease>',check) # Create a Listbox widget to display the list of items menu= Listbox(win) menu.pack() # Create a list of all the menu items values= ['Python', 'C++', 'Java','Ruby on Rails', 'Rust', 'GoLang','Objective-C', 'C# ', 'PHP', 'Swift', 'JavaScript'] # Add values to our combobox update(values) # Binding the combobox onclick win.mainloop()
Đầu ra
Chạy tập lệnh Python ở trên sẽ hiển thị một cửa sổ có tiện ích Entry và ListBox. Bất cứ khi nào chúng tôi nhập Từ khóa, nó sẽ cập nhật tiện ích ListBox hiển thị kết quả phù hợp với từ khóa đã nhập.