파이썬(Python)/tkinter

[Python] tkinter로 상태창 만들고 상태 업데이트 예제 실습(Log, Status window, update, 파이썬)

끄적끄적아무거나 2023. 12. 21. 08:35
반응형

 

목차

     

     

     

    tkinter로 상태창 만들고 상태 업데이트 예제 실습

     

    Tkinter를 사용하여 4개의 라벨(Label)에 상태 업데이트를 표시하고, 라벨이 모두 차면 가장 마지막에 작성한 로그 값을 Overwrite하는 예제를 구현해보겠습니다.

    1. 4개의 라벨을 생성하여 상태를 표시합니다.
    2. 상태가 바뀔 때마다 새로운 상태를 라벨에 업데이트합니다.
    3. 4개의 라벨이 모두 차면, 가장 오래된 라벨부터 새로운 상태로 덮어씁니다.

     

     

    예제 코드>>

    import tkinter as tk
    
    class StatusDisplay:
        def __init__(self, root):
            self.root = root
            self.labels = [tk.Label(root, text=f"Status {i+1}: ", width=20) for i in range(4)]
            for label in self.labels:
                label.pack()
    
            self.current_label_index = 0
    
            # 버튼 추가
            self.update_button = tk.Button(root, text="Update Status", command=self.update_status)
            self.update_button.pack()
    
            # 상태 업데이트 카운터
            self.update_count = 0
    
        def update_status(self):
            new_status = f"Status updated {self.update_count + 1}"
            self.labels[self.current_label_index].config(text=new_status)
    
            # 다음 라벨로 이동하고 카운터 증가
            self.current_label_index = (self.current_label_index + 1) % len(self.labels)
            self.update_count += 1
    
    # Tkinter 윈도우 생성
    root = tk.Tk()
    root.title("Status Update Example")
    
    app = StatusDisplay(root)
    
    root.mainloop()

     

     

     

    결과>>

     

     

     

     

    코드 주석>>

    • 6~8번 라인을 통해서 초기에 Statude 1~4번 값이 표기 됩니다.
    • 13번 라인을 통해서 "update status" 버튼을 클릭하면 " update_status " 함수가 실행됩니다.
    • 19~25번 라인을 통해서 함수가 실행할때마다 count 값을 증가해서 전달 합니다. 이때 label 값은 class내에서 선언이 되어 있어서 update가 가능 합니다.

     

     

    예제 코드 다운로드>>

    test01.py
    0.00MB

     

     

     

    반응형