그래서 Tkinter GUI에는 두 가지 간단한 옵션 인 시작 및 중지 버튼이 있습니다. 나는 GUI 레이아웃 정의 : 여기Tkinter GUI 중지 버튼을 만들어 무한 루프를 깨는 방법은 무엇입니까?
from Tkinter import *
def scanning():
while True:
print "hello"
root = Tk()
root.title("Title")
root.geometry("500x500")
app = Frame(root)
app.grid()
시작 버튼이 무한 루프 스캔을 실행을하고, 중지 버튼을 눌러에 휴식해야합니다
start = Button(app, text="Start Scan",command=scanning)
stop = Button(app, text="Stop",command="break")
start.grid()
stop.grid()
그러나, 나는 시작 단추를 명중 할 때, 그것을 항상 푸시 다운됩니다 (무한 루프 때문에 가정). 그러나 은 중지 버튼을 클릭하여 while 루프를 벗어날 수 없습니다.
나는 블루투스 RSSI 신호를 지속적으로 스캔하기 때문에 while 루프가 필요하다는 것을 추가해야한다. 따라서,이 프로그램은 나를 위해 작동하지 않습니다. while 루프를 사용하여 다른 방법이 있습니까? @iCodez –
@ JonathanDavies - 글쎄, 당신은 항상'root.after (1000, scanning)'을'root.after (1, scanning)'로 바꿔 코드가 매초마다'scanning '을 실행하도록 할 수 있습니다. 이것은 연속 while 루프와 거의 같은 효과를 갖습니다. 그렇지 않으면 루프를 별도의 스레드에 넣어야합니다. 위에서 준 링크에는 더 많은 정보가 있지만 기본적으로 루프를 함수에 넣은 다음 함수를 threading.Thread에 제공합니다. – iCodez
그래서 내가 수집 한 것에서 시작 = 버튼 (app, text = "스캔 시작", command = threading.Thread (name = "bluetooth", target = scanning))입니다. 이것은 작동하지 않으며 Thread() 뒤에 .start()를 추가하면 클릭하지 않고 바로 함수를 시작합니다. @iCodez –