Sorry, just realized that this was an old post.
You could do something like
You could do something like
import tkinter as tk class Action: def __init__(self): pass def kp(self, event, labels=[]): if event.keysym in ['a','b','c','d']: for label in labels: label.config(text=f'You pressed: {event.keysym.title()}') def reset(self, event, labels=[]): for label in labels: label.config(text='Default') class Window: def __init__(self, parent): self.parent = parent parent.title('My Title Here') parent.geometry('800x600+250+250') parent.columnconfigure(0, weight=1) parent.rowconfigure(0, weight=1) container = tk.Frame(parent) container.grid(column=0, row=0, sticky='news') container.grid_columnconfigure(0, weight=3, uniform='text') container.grid_columnconfigure(1, weight=3) container.grid_columnconfigure(2, weight=3, uniform='text') self.left_label = tk.Label(container, relief='ridge', text='Default') self.left_label.grid(column=0, row=0, sticky='new') spacer = tk.Frame(container) spacer.grid(column=1, row=0, sticky='new') self.right_label = tk.Label(container, relief='ridge', text='Default') self.right_label.grid(column=2, row=0, sticky='new') class Controller: def __init__(self, window, action): self.window = window self.action = action # Bind keys to action labels = [ self.window.left_label, self.window.right_label ] self.window.parent.bind('<KeyPress>', lambda event:self.action.kp(event, labels=labels)) self.window.parent.bind('<KeyRelease>', lambda event:self.action.reset(event, labels=labels)) if __name__ == '__main__': root = tk.Tk() controller = Controller(Window(root), Action()) root.mainloop()
I welcome all feedback.
The only dumb question, is one that doesn't get asked.
My Github
How to post code using bbtags
The only dumb question, is one that doesn't get asked.
My Github
How to post code using bbtags