Home > OS >  creating multiple Labels
creating multiple Labels

Time:01-09

i'm trying to create a timer for smokes when playing a game, i want it to detect when i press "p" and start displaying a timer in the overlay. This is what i have so far:

from tkinter import *
import time
import keyboard

class Timer():
    def __init__(self):
        self.Time = 8
        while self.Time != 0:
            self.Label(self, text="Smoke 1:" self.Time)
            self.Label.pack()
            self.Time -= 0.10
            self.Time = round(self.Time, 2)
            time.sleep(0.1)


keyboard.add_hotkey('p', Timer())
keyboard.wait('esc')
root = Tk()
root.geometry("200x75")
root.overrideredirect(True)
root.wm_attributes("-topmost", True)
root.wm_attributes("-transparentcolor", "gray")
root.wm_attributes("-alpha", 0.5)

root.mainloop()

The self.Label doesn't work. can someone help me?

CodePudding user response:

You can use keyboard and threading to create a new tkinter label on a key press.

import tkinter as tk
import time
import threading
import keyboard


def thread(_root):
    keyboard.add_hotkey('p', update_label, args=(_root,))
    keyboard.wait('esc')


def update_label(_root):
    tk.Label(_root, text=str(time.time())).pack()


root = tk.Tk()
label = tk.Label(root, text='')
label.pack()
listener = threading.Thread(target=thread, args=(root,))
listener.start()
root.mainloop()
  •  Tags:  
  • Related