Search code examples
pythontkinterstatusbarclock

Digital clock in status bar in python 3 and tkinter


I want to put this digital clock:

import sys    
from tkinter import *
import time

root = Tk()
time1 = ''
clock = Label(root, font=('times', 20, 'bold'), bg='green')
clock.pack(fill=BOTH, expand=1)

def tick():
    global time1
    # get the current local time from the PC
    time2 = time.strftime('%H:%M:%S')
    # if time string has changed, update it
    if time2 != time1:
        time1 = time2
        clock.config(text=time2)
        # calls itself every 200 milliseconds
        # to update the time display as needed
        # could use >200 ms, but display gets jerky
    clock.after(200, tick)

tick()
root.mainloop(  )

in this status bar:

status = Label(mGui, text="v1.0", bd=1, relief=SUNKEN, anchor=W)
status.pack(side=BOTTOM, fill=X)

Is there a way to do that? Thanks everyone who want to help, I appreciate it :)


Solution

  • Tkinter noob here, but i don't think you can put the clock label inside the status label. However you can put them side by side:

    import sys    
    from tkinter import *
    import time
    
    def tick():
        global time1
        # get the current local time from the PC
        time2 = time.strftime('%H:%M:%S')
        # if time string has changed, update it
        if time2 != time1:
            time1 = time2
            clock.config(text=time2)
            # calls itself every 200 milliseconds
            # to update the time display as needed
            # could use >200 ms, but display gets jerky
        clock.after(200, tick)
    
    root = Tk()
    time1 = ''
    
    status = Label(root, text="v1.0", bd=1, relief=SUNKEN, anchor=W)
    status.grid(row=0, column=0)
    
    clock = Label(root, font=('times', 20, 'bold'), bg='green')
    clock.grid(row=0, column=1) 
    
    tick()
    root.mainloop()