在这段基本的Python Tkinter代码中,我试图将某些函数绑定到按下UI按钮或按下键盘键时触发.
import tkinter as tk
from tkinter import ttk
main_window = tk.Tk()
main_window.title('Test UI')
# Change text with "Enter" then flush
def changeTextEnter():
text_label.configure(text=entry_bar.get())
entry_bar.delete(0, tk.END)
# Close program key function
def quitApp():
main_window.destroy()
# Enter Button
enter_button = ttk.Button(text='Enter', command=changeTextEnter)
enter_button.grid(row=0, column=0)
# Entry bar
entry_bar = ttk.Entry(width=30)
entry_bar.grid(row=0, column=1)
# Quit Button
quit_button = ttk.Button(text='Quit', command=main_window.destroy)
quit_button.grid(row=0, column=2)
# Text label
text_label = ttk.Label(text='TEST TEXT GOES HERE')
text_label.grid(row=1, column=0, columnspan=2)
# Bind enter key
main_window.bind('<Return>', changeTextEnter)
# Bind quit key
main_window.bind('<Escape>', quitApp)
main_window.mainloop()
经过一段时间的反复试验,如果我添加一个
*randomVariable
在下列国家的声明中:
def changeTextEnter(*randomVariable):
以及:
def quitApp(*randomVariable):
我知道,一个星号允许函数接受未知数量的参数,而双星号则充当具有键值的字典.
我的问题是:
- 为什么我在这些函数中需要一个参数呢?
- 既然我实际上没有在函数中的任何地方使用/赋值任何东西,那么如何使用变量"*随机变量"呢?
- 为什么在变量前没有星号的情况下,函数不能正常工作?