Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Tkinter에서 중지 버튼으로 루프를 중지하는 방법은 무엇입니까?

<시간/>

루프에서 프로세스를 실행하는 경우를 고려하고 버튼을 클릭할 때마다 루프를 중지하려고 합니다. 일반적으로 프로그래밍 언어에서 연속 동안 을 중지하려면 루프에서는 중단 을 사용합니다. 성명. 그러나 Tkinter에서는 while 대신 루프에서는 after()를 사용합니다. 루프에서 정의된 함수를 실행합니다. 연속 루프를 끊으려면 루프의 실행 상태를 변경하도록 업데이트할 수 있는 전역 부울 변수를 사용하십시오.

주어진 예의 경우

  • 플래그 와 유사하게 작동하는 전역 변수 생성 루프에서.

  • 시작 이라는 두 개의 버튼을 정의합니다. 및 중지 , 실행을 시작 및 중지합니다.

  • on_start()라는 두 가지 함수를 정의합니다. 및 on_stop() , 루프에서 업데이트를 전달합니다.

예시

# 필요한 라이브러리를 가져오기from tkinter import *from tkinter import ttk# tkinter 프레임 또는 windowwin의 인스턴스 생성 =Tk()# windowwin.geometry("700x350")running =True# 크기를 설정합니다. 루프 정의의 텍스트를 인쇄합니다. print_text():if running:print("Hello World") win.after(1000, print_text)# 루프 정의를 시작하는 함수를 정의합니다. on_start():global running running =True# stop loopdef on_stop():global running running =Falsecanvas =Canvas(win, bg="skyblue3", width=600, height=60)canvas.create_text(150, 10, text="시작/중지를 클릭하여 실행 Code", font=('', 13))canvas.pack()# 루프 시작/중지 버튼 추가 =ttk.Button(win, text="Start", command=on_start)start.pack(padx=10)stop =ttk.Button(win, text="Stop", command=on_stop)stop.pack(padx=10)# windowwin.after(1000, print_text)win.mainloop()<에서 텍스트를 출력하는 함수 실행 /사전> 

출력

위의 코드를 실행하여 특정 조건에 대한 루프를 테스트합니다.

Tkinter에서 중지 버튼으로 루프를 중지하는 방법은 무엇입니까?

위의 코드를 실행하고 시작 버튼을 클릭하면 "중지" 버튼을 클릭하여 중지할 수 있는 루프에 "Hello World" 텍스트가 인쇄됩니다.

Hello WorldHello WorldHello WorldHello WorldHello WorldProcess가 종료 코드 0으로 완료됨