코딩이야기

[파이썬] 시계만들기

이웃집김씨 2024. 2. 21. 17:39

보통 유튜브나 라이브 방송들을 볼 때 전체 화면으로 보는 편이라 윈도우 시계를 못 보게 된다.

 

그래서 화면 전환을 하거나 전체화면 해제 했다가 다시 전체화면으로 전환하는 등의 방법으로 시간 확인을 하게 되는 번거로움이 있었다.

 

해서, 그냥 항상 위에 있는 시계를 만들게 되었다.

 

import tkinter as tk
import time

class ClockApp:
    def __init__(self, master):
        self.master = master
        self.master.title("Windows 10 Clock")
        
        self.label = tk.Label(master, font=('Arial', 48), bg='black', fg='white')
        self.label.pack(padx=20, pady=20)
        
        self.show_seconds = tk.BooleanVar()
        self.show_seconds.set(False)
        
        self.checkbox = tk.Checkbutton(master, text="Show Seconds", variable=self.show_seconds, command=self.update_clock)
        self.checkbox.pack()
        
        self.update_clock()
        
    def update_clock(self):
        current_time = time.strftime("%H:%M:%S" if self.show_seconds.get() else "%H:%M")
        self.label.config(text=current_time)
        self.label.after(1000, self.update_clock)  # Update every second

if __name__ == "__main__":
    root = tk.Tk()
    app = ClockApp(root)
    root.mainloop()

 

처음에 이런식으로 만들었다가 전체화면 하면 뒤로 밀려서 다시 수정

 

import tkinter as tk
import time

class ClockApp:
    def __init__(self, master):
        self.master = master
        self.master.title("Windows 10 Clock")
        
        # Remove window decorations
        self.master.overrideredirect(True)
        
        # Position the window at the top of the screen
        screen_width = self.master.winfo_screenwidth()
        self.master.geometry(f"+0+0")
        
        # Set the window to be always on top
        self.master.wm_attributes("-topmost", True)
        
        self.label = tk.Label(master, font=('Arial', 48), bg='black', fg='white')
        self.label.pack(padx=20, pady=20)
        
        self.show_seconds = tk.BooleanVar()
        self.show_seconds.set(False)
        
        self.checkbox = tk.Checkbutton(master, text="Show Seconds", variable=self.show_seconds, command=self.update_clock)
        self.checkbox.pack()
        
        self.update_clock()
        
    def update_clock(self):
        current_time = time.strftime("%H:%M:%S" if self.show_seconds.get() else "%H:%M")
        self.label.config(text=current_time)
        self.label.after(1000, self.update_clock)  # Update every second

if __name__ == "__main__":
    root = tk.Tk()
    app = ClockApp(root)
    root.mainloop()

 

일단 이렇게 쓰다가 불편한 게 있으면 계속 수정하면서 사용할 예정.

 

초 표시도 되고..그냥저냥 지금 쓰기엔 답답한 거 없이 잘 쓸 수 있는 것 같다.

반응형