Tkinter:制作一个可以在选择时更改变量的列表框

2024-09-27 07:31:41 发布

您现在位置:Python中文网/ 问答频道 /正文

现在我做了一个程序,只要按一下按钮就可以激活。现在假设我有一个名为:

selection = Tkinter.Listbox(b_action)
selection.insert(1,"stuff")
selection.insert(2,"morestuff")
a = 0

每次选择列表框的不同部分时,如何使该过程运行?例如,我首先点击“素材”,然后点击“更多素材”。单击“素材”将a设置为1,单击“更多素材”将a再次设置为0。在


Tags: 程序tkinter过程action按钮insertstuffselection
1条回答
网友
1楼 · 发布于 2024-09-27 07:31:41

您可以创建一个字典,将实际的listbox值与备用值(例如:{"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()

如果只想将变量设置为所选项目的索引,则不需要字典。你想从列表框里选出来的,是你想要的还是你想要的东西。在

相关问题 更多 >

    热门问题