Aug-04-2022, 04:03 AM
In this basic Python Tkinter code, I'm trying to bind certain functions to trigger upon either a UI button press or a keyboard key press.
After a while of trial and error, it seems to work the way I want if I add an
I get that one asterisk lets the function take an unknown number of arguments, and a double asterisk acts as a dictionary with key values.
My questions are:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
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
in the declarations of def changeTextEnter(*randomVariable):
and def quitApp(*randomVariable):
I get that one asterisk lets the function take an unknown number of arguments, and a double asterisk acts as a dictionary with key values.
My questions are:
- Why do I need a parameter in those functions at all?
- How does the variable
*randomVariable
get used, since it seems like I'm not actually using/ assigning anything torandomVariable
anywhere within the function.
- Why does the function not work as intended without the asterisk before the variable?