从组合框选择不同导致使用tkinter,python的多个标签

时间:2013-06-04 19:28:41

标签: combobox tkinter

我想知道如何在不同的标签中使用多个值,具体取决于组合框下拉列表选择。例如,假设您有一个组合框,其值(汽车,房屋,计算机)和多个标签在选择组合框时反映不同的大小和颜色。如果我选择汽车,我将有尺寸:大,颜色:黑色等等......

提前致谢。

此致

2 个答案:

答案 0 :(得分:4)

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()

答案 1 :(得分:3)

您可以将textvariable属性分配给组合框,然后对该变量进行跟踪。只要组合框的值发生变化,跟踪就会调用一个函数。在此功能中,您可以为所需的任何标签设置文本。