如何定义具有 2 个参数的函数,其中一个是 Tkinter 'event' 参数?
How do I define a function having 2 parameters, with one being a Tkinter 'event' parameter?
我正在编写一个程序,根据用户的选择从特定文本文件中读取单词列表。
然后这个单词列表将用作另一个函数'startgame()'的参数,这也是我的Tkinter window的'event',它是显示获取的单词根据用户的选择从文件中选择。
但是,这里的问题是,当一个函数是一个Tkinter事件时,只能有一个参数,因此我无法使用获取的单词作为参数。
这里有一个最小可重现的例子供参考-
window = Tk()
def func1():
fh = open("file.txt")
reader = fh.read()
fetched_words = reader.split('|')
window.bind('<Return>', func2)
def func2(event): # here I need to add another parameter
word_display.configure(text=fetched_words[0]) # must have argument 'words' instead of 'fetched_words'
我已经尝试了多种方法来修复这个bug,到目前为止都没有成功。请帮帮我!
应该这样做:
window = Tk()
def func1():
fh = open("file.txt")
reader = fh.read()
fetched_words = reader.split('|')
window.bind('<Return>', lambda event: func2(event, fetched_words))
def func2(event, fetched_words): # here I need to add another parameter
word_display.configure(text=fetched_words[0]) # must have argument 'words' instead of 'fetched_words'
通过使用 lambda,您可以向绑定添加额外的参数。
我正在编写一个程序,根据用户的选择从特定文本文件中读取单词列表。
然后这个单词列表将用作另一个函数'startgame()'的参数,这也是我的Tkinter window的'event',它是显示获取的单词根据用户的选择从文件中选择。
但是,这里的问题是,当一个函数是一个Tkinter事件时,只能有一个参数,因此我无法使用获取的单词作为参数。
这里有一个最小可重现的例子供参考-
window = Tk()
def func1():
fh = open("file.txt")
reader = fh.read()
fetched_words = reader.split('|')
window.bind('<Return>', func2)
def func2(event): # here I need to add another parameter
word_display.configure(text=fetched_words[0]) # must have argument 'words' instead of 'fetched_words'
我已经尝试了多种方法来修复这个bug,到目前为止都没有成功。请帮帮我!
应该这样做:
window = Tk()
def func1():
fh = open("file.txt")
reader = fh.read()
fetched_words = reader.split('|')
window.bind('<Return>', lambda event: func2(event, fetched_words))
def func2(event, fetched_words): # here I need to add another parameter
word_display.configure(text=fetched_words[0]) # must have argument 'words' instead of 'fetched_words'
通过使用 lambda,您可以向绑定添加额外的参数。