现在我制作了一个单击按钮即可激活的程序。现在说我有一个名为的列表框:
selection = Tkinter.Listbox(b_action)
selection.insert(1,"stuff")
selection.insert(2,"morestuff")
a = 0
每次选择列表框的不同部分时,如何使该过程运行?例如,我首先单击“stuff”,然后单击“morestuff”。单击“stuff”设置a
为 1,单击“morestuff”a
再次设置为 0。
您可以创建一个字典,将实际列表框值与您的备用值({"stuff": 1, "morestuff": 2}
例如<<ListboxSelect>>
:你的变量中的那个值。
这是一个例子:
import Tkinter as tk
class Example(tk.Frame):
def __init__(self, *args, **kwargs):
tk.Frame.__init__(self, *args, **kwargs)
self.label = tk.Label(self)
self.selection = tk.Listbox(self, width=40)
self.label.pack(side="top", fill="x", expand=False)
self.selection.pack(side="top", fill="both", expand=True)
self.data = {"stuff": 1, "morestuff": 2}
self.selection.insert("end", "stuff", "morestuff")
self.selection.bind("<<ListboxSelect>>", self.on_listbox_select)
def on_listbox_select(self, event):
i = self.selection.curselection()[0]
text = self.selection.get(i)
self.label.configure(text="new value: %s (%s)" % (self.data[text], text))
if __name__ == "__main__":
root = tk.Tk()
Example(root).pack(side="top", fill="both", expand=True)
root.mainloop()
如果您只想将变量设置为所选项目的索引,则不需要字典。从您的问题中不清楚您是否想要所选内容的索引,或者与列表框项目相关联的一些不同值。