Python 在tkinter中创建事件之间的关系

Python 在tkinter中创建事件之间的关系,python,events,tkinter,bind,Python,Events,Tkinter,Bind,我有一个带有事件函数的列表框和组合框(使用python的tkinter),无法找到在这两个事件之间建立任何关系的方法 我用sqlite3构建了一个数据库,其中存储费用(相关列为“类别”、“成本”) 在我的GUI中,我有一个包含所有数据库行的列表框。 我添加了一个组合框,允许我选择一个特定类别,单击其中一个类别后,我只能在列表框中看到具有该特定类别的条目(简单绑定和事件函数) 除此之外,我还有一个条目小部件。 upp单击列表框中的特定行时,该行的成本列将插入到条目小部件中 当我首先触发Combob

我有一个带有事件函数的列表框和组合框(使用python的tkinter),无法找到在这两个事件之间建立任何关系的方法

我用sqlite3构建了一个数据库,其中存储费用(相关列为“类别”、“成本”)

在我的GUI中,我有一个包含所有数据库行的列表框。 我添加了一个组合框,允许我选择一个特定类别,单击其中一个类别后,我只能在列表框中看到具有该特定类别的条目(简单绑定和事件函数)

除此之外,我还有一个条目小部件。 upp单击列表框中的特定行时,该行的成本列将插入到条目小部件中

当我首先触发Combobox事件,然后尝试单击Listbox中的特定行以触发Listbox事件时,就会出现问题。条目小部件中没有插入任何内容

我的这些事件函数代码:

global selected_cat
"""event triggered by clicking on a row in Combobox.
   lb is Listbox widget.
   selected_cat will store the selected category.
   db is the Database
"""
def get_selected_category(event):
    selected_cat=cat.get()
    lb.delete(0,END)
    for i in db.search_by_category(selected_cat):
        lb.insert(END,i)

"""event triggered by clicking on a row in Listbox.
   lb is Listbox widget.
   selected_tuple is a tuple which contains (id,category,cost)
"""
def get_selected_row(event):

        global selected_tuple
        print(lb.curselection())
        index=lb.curselection()[0]
        if index != ():
            selected_tuple=lb.get(index)
            print(selected_tuple)
            e1.delete(0,END)
            e1.insert(END,str(selected_tuple[2])+" ILS")
以下是绑定:

lb.bind('<<ListboxSelect>>',get_selected_row)
cat.bind('<<ComboboxSelected>>', get_selected_category)
lb.bind(“”,获取选定行)
类别绑定(“”,获取所选类别)

我已设法解决了这个问题。 这个问题是由我的数据库类引起的,它有一个视图函数,返回元组中的4个元素,但其他一些视图函数我只返回了3个。 所以“selected_tuple[2]”的索引是一个空字符串,这就是为什么我在条目中看不到该值的任何表示形式


感谢您的帮助和指导

看起来正常,
try:。。。除此之外:…
block,将所有内容都阻止是不好的做法。移除它并显示回溯和打印(lb.curselection())和打印(所选参数)的输出。现在我没有收到错误,但在条目中显示列时仍然存在问题。“当我第一次触发Combobox事件,然后尝试单击Listbox中的特定行以触发Listbox事件时,就会出现问题。没有任何内容插入到条目小部件中。”