class App:
def __init__(self, root):
self.root = root
self.root.title("GitHub Commit Checker")
# '실행' 버튼 초기화
self.start_button = tk.Button(root, text="실행", command=self.start_checking)
self.start_button.pack(side="left", padx=(20, 10), pady=20)
# '정지' 버튼 초기화
self.stop_button = tk.Button(root, text="정지", command=self.stop_checking)
self.stop_button.pack(side="right", padx=(10, 20), pady=20)
# 스레드 및 실행 상태 초기화
self.checking_thread = None
self.running = False
def start_checking(self):
if not self.running: # 이미 실행 중이지 않다면
self.running = True
# 새 스레드에서 check_commit_status 함수 실행
self.checking_thread = threading.Thread(target=check_commit_status, args=(owner, repo, token))
self.checking_thread.start()
def stop_checking(self):
if self.running: # 실행 중이라면
self.running = False # 실행 상태를 정지 상태로 변경
if self.checking_thread.is_alive():
# 스레드가 아직 살아 있다면 join을 통해 종료될 때까지 대기
self.checking_thread.join()
if __name__ == '__main__':
root = tk.Tk()
app = App(root)
root.mainloop()
tkinter 를 불러와 class를 만들어 GUI를 구현해주었다.
그 결과는 이와 같다.
실행 버튼을 누르면 앞서 구현한 커밋을 자동 포스팅 하는 프로그램이 실행된다.
정지를 누르면 쓰레드가 종료되어야 하는데 어째서인지 튕기는 현상이 발생 중이므로 이를 해결하여 안정적으로 구동하는 것이 다음 목표이다.
'개발 기록 > 자동 포스팅 프로그램' 카테고리의 다른 글
GUI 설정 성공 (0) | 2024.01.18 |
---|---|
자연스러운 취소 기능 추가 (0) | 2024.01.11 |
몇 가지 기능 갱신 (0) | 2023.12.22 |
최신 커밋 호출 성공 (0) | 2023.12.20 |
posting content 파트 완성!! (1) | 2023.12.18 |