如何根据组合框选择更改多个标签?

Hec*_*tor 1 combobox tkinter

Combobox我希望您知道如何根据下拉列表选择在不同标签中拥有多个值。例如,假设您有一个Combobox值 ( car、house、computer) 和多个Labels,它们在选择 时反映不同的尺寸和颜色Combobox。如果我选择car,我将有尺寸:big,颜色:black 等等......

A. *_*das 6

Combobox 小部件生成虚拟事件<<ComboboxSelected>>,您可以使用该事件根据当前值更改标签的选项:

import Tkinter as tk
import ttk

values = ['car', 'house', 'computer']
root = tk.Tk()
labels = dict((value, tk.Label(root, text=value)) for value in values)

def handler(event):
    current = combobox.current()
    if current != -1:
        for label in labels.values():
            label.config(relief='flat')
        value = values[current]
        label = labels[value]
        label.config(relief='raised')

combobox = ttk.Combobox(root, values=values)
combobox.bind('<<ComboboxSelected>>', handler)
combobox.pack()
for value in labels:
    labels[value].pack()

root.mainloop()
Run Code Online (Sandbox Code Playgroud)

  • @hector:您可以使用这个答案来解决您的问题。只需将处理程序中的代码替换为您需要执行的操作即可。您可以添加或删除小部件、重新配置小部件、更改标签等。此答案显示了如何在用户更改值时调用函数并获取组合框的值。 (2认同)