Python에서 시작 중지 버튼

저는 반복되는 수작업을 자동화하기 위해 항상 코딩에 대한 갈증을 해소하는 기술 지원 엔지니어입니다. 그러한 도구를 만드는 동안 직면한 문제 중 하나를 공유하고 싶습니다.

티켓팅 도구에서 사례 및 티켓을 모니터링하는 코드를 개발했습니다. 지원 엔지니어의 지루한 작업 중 하나입니다. 목표는 이 티켓팅 도구를 제어할 수 있는 시작 및 중지 버튼용 UI를 만드는 것이었습니다. UI는 Tkinter 패키지를 사용하여 만들었습니다.

문제는 시작 버튼을 누를 때마다 버튼을 사용하여 시작된 기능의 코드 실행이 완료될 때까지 버튼이 해제되지 않는다는 것이었습니다. 이 솔루션을 검색하는 동안 MultiThreading을 발견했습니다.

이 사람들이 내 생명을 구했습니다. 이것은 많은 사람들에게 흔한 일이지만 그러한 것을 만나는 것은 스릴이었습니다.

멀티스레딩은 모든 스레드가 동일한 메모리를 공유하는 동일한 프로세스에서 다른 스레드를 갖는 것입니다. 따라서 프로세스에는 항상 메인 프로그램인 메인 스레드와 메인 스레드에서 생성되는 다른 스레드가 있습니다.

별도의 스레드로 시작 기능을 시작하기 위해 start_thread에 대한 함수를 만들었습니다.

start_btn = Tk.Button(root,Text="Start",command=start_thread
start_btn.pack()
 def start_thread():
    t1= threading.Thread(target=start)
    status=True

def start():
    while status:
        <Main code>


Multithreading을 사용하기 때문에 메모리를 공유하므로 언제든지 상태 값을 변경하고 응용 프로그램을 중지할 수 있습니다.

stop_btn = Tk.Button(root,Text="Start",command=start_thread
stop_btn.pack()

def stop():
  status=False


이제 몇 줄의 코드로 애플리케이션을 쉽게 제어할 수 있습니다. 코더에게는 작은 일이지만 그 순간 저에게는 구세주였습니다.

좋은 웹페이지 즐겨찾기