Python Forum
update text variable on label with keypress
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
update text variable on label with keypress
#6
Sorry, just realized that this was an old post.

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


Reply


Messages In This Thread
RE: update text variable on label with keypress - by menator01 - May-31-2024, 02:09 PM

Possibly Related Threads…
Thread Author Replies Views Last Post
  [Tkinter] Update label if there are no records in treeview TomasSanchexx 1 1,114 Aug-20-2023, 04:45 PM
Last Post: menator01
  [Tkinter] Can't update label in new tk window, object has no attribute tompranks 3 3,904 Aug-30-2022, 08:44 AM
Last Post: tompranks
  [Tkinter] The Text in the Label widget Tkinter cuts off the Long text in the view malmustafa 4 5,818 Jun-26-2022, 06:26 PM
Last Post: menator01
  [Tkinter] Update variable using tkinter entry methon drSlump 6 5,632 Oct-15-2021, 08:01 AM
Last Post: drSlump
  [Tkinter] Make my button text update? Skata100 1 2,198 Aug-07-2021, 05:37 AM
Last Post: deanhystad
  [Tkinter] bind lambda keypress counter knoxvilles_joker 15 8,319 Apr-19-2021, 01:56 AM
Last Post: knoxvilles_joker
  Updating button text based upon different variable values knoxvilles_joker 0 2,361 Apr-18-2021, 04:13 AM
Last Post: knoxvilles_joker
  [Tkinter] tkinter.Menu – How to make text-variable? Sir 3 5,877 Mar-10-2021, 04:21 PM
Last Post: Sir
  How to read text in kivy textinput or Label jadel440 1 5,523 Dec-29-2020, 10:47 AM
Last Post: joe_momma
  [Kivy] Kivy text label won't shows up! AVD_01 1 3,099 Jun-21-2020, 04:01 PM
Last Post: AVD_01

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020