Python 绑定到tkinter中的列表框不会';我好像不工作

Python 绑定到tkinter中的列表框不会';我好像不工作,python,python-3.x,tkinter,Python,Python 3.x,Tkinter,我试图将列表框中的项目绑定到1号鼠标按钮,这样当我按下它时,它会打印“hi”。然而,每当我尝试这样做的代码根本不会工作。当我启动程序时,无论我点击多少次鼠标按钮,它都会打印一次“hi”,然后再也不会打印。有什么建议吗?谢谢 from tkinter import * class Applikation(Frame): def __init__(self, master):

我试图将列表框中的项目绑定到1号鼠标按钮,这样当我按下它时,它会打印“hi”。然而,每当我尝试这样做的代码根本不会工作。当我启动程序时,无论我点击多少次鼠标按钮,它都会打印一次“hi”,然后再也不会打印。有什么建议吗?谢谢

            from tkinter import *

            class Applikation(Frame): 
                def __init__(self, master):

                    Frame.__init__(self,master)

                    self.master=master
                    self.rssList = Listbox(self.master, height=30, width=50) 
                    self.rssList.grid(row=1, column=0, rowspan=4, padx=10, pady=20)
                    self.rssList.bind("<Button-1>", print("hi"))


            rssReader = Tk()
            rssReader.title("Rss reader")
            rssReader.resizable(10, 10)
            app = Applikation(rssReader).grid()
            rssReader.mainloop()
从tkinter导入*
类别应用(框架):
定义初始(自我,主):
帧。\uuuu初始化(自,主)
self.master=master
self.rssList=Listbox(self.master,高度=30,宽度=50)
self.rssList.grid(行=1,列=0,行跨度=4,padx=10,pady=20)
self.rssList.bind(“,print(“hi”))
rssReader=Tk()
rssReader.title(“Rss阅读器”)
rssReader.可调整大小(10,10)
app=Applikation(rssReader).grid()
rssReader.mainloop()

绑定到
时,需要将命令作为引用传递,而不使用
()

您可以通过定义一个单独的函数:

class Applikation(Frame):
    def __init__(self, master):
        ...
        self.rssList.bind("<Button-1>", self.print_hi)

    def print_hi(self,event):
        print ("hi")
self.rssList.bind("<Button-1>", lambda e: print("Hi"))

绑定到
时,需要将命令作为引用传递,而不使用
()

您可以通过定义一个单独的函数:

class Applikation(Frame):
    def __init__(self, master):
        ...
        self.rssList.bind("<Button-1>", self.print_hi)

    def print_hi(self,event):
        print ("hi")
self.rssList.bind("<Button-1>", lambda e: print("Hi"))
函数的作用是:打印到控制台,而不是GUI

我解决这个问题的方法是为Applikation类创建一个新方法,并在rssList.bind中调用它

意思是:

class Applikation(Frame): 
    def __init__(self, master):
        #everything else here is fine
        self.rssList.bind("<Button-1>", self.say_hi)

    def say_hi(self, default=None):
        self.rssList.insert(END, "Hi")
#Keep everything else here the same
类应用(框架):
定义初始(自我,主):
#这里的其他一切都很好
self.rssList.bind(“,self.say\u hi)
def say_hi(自身,默认值=无):
self.rssList.insert(结束,“Hi”)
#这里的一切都一样
print()函数仅打印到控制台,而不是GUI

我解决这个问题的方法是为Applikation类创建一个新方法,并在rssList.bind中调用它

意思是:

class Applikation(Frame): 
    def __init__(self, master):
        #everything else here is fine
        self.rssList.bind("<Button-1>", self.say_hi)

    def say_hi(self, default=None):
        self.rssList.insert(END, "Hi")
#Keep everything else here the same
类应用(框架):
定义初始(自我,主):
#这里的其他一切都很好
self.rssList.bind(“,self.say\u hi)
def say_hi(自身,默认值=无):
self.rssList.insert(结束,“Hi”)
#这里的一切都一样

谢谢!让人难堪的是,我花了多长时间试图修复它却没有取得任何进展,也许我只是因为查找它没有帮助,再次感谢!非常感谢。让人难堪的是,我花了多长时间试图修复它却没有取得任何进展,也许我只是因为查找它没有帮助,再次感谢!