Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 19, 2018 09:35:24

Nurullokhon
Зарегистрирован: 2018-09-08
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Как остановить бесконечный цикл при помощи кнопки

Доброго всем времени суток. Помогите пожалуйста.
Нажимаю кнопку и начинается бесконечный цикл. Хочу создать кнопку что бы он остановил этот цикл.
Заранее всех благодарю

 from tkinter import *
import time
 
clicks = 0
def click_button():
    count=60
    while True:
        time.sleep(1)
        count=count-1
        print (count)
root = Tk()
root.title("GUI на Python")
root.geometry("300x250")
buttonText = StringVar()
buttonText.set("Clicks {}".format(clicks))
btn = Button(textvariable=buttonText, background="#555", foreground="#ccc",
             padx="20", pady="8", font="16", command=click_button)
btn.place(relx=0.8, rely=0.9, anchor="c", height=30, width=100, bordermode=INSIDE)
root.mainloop()

Офлайн

#2 Сен. 19, 2018 10:35:10

BM21
Зарегистрирован: 2018-09-15
Сообщения: 29
Репутация: +  0  -
Профиль   Отправить e-mail  

Как остановить бесконечный цикл при помощи кнопки

Nurullokhon
Доброго всем времени суток. Помогите пожалуйста.Нажимаю кнопку и начинается бесконечный цикл. Хочу создать кнопку что бы он остановил этот цикл.Заранее всех благодарю
Надо в цикле обрабатывать сообщения от окон.
Примерно так но код не проверял, tk не когда не юзал.

 #-*-encoding: utf-8-*-
from tkinter import *
import time
 
loopRunned = False
stopLoop = False
clicks = 0
def click_button():
    global loopRunned
    global stopLoop
    count=60
    if not loopRunned: # Если цикл еще не запущен
        while not stopLoop: 
            time.sleep(1)
            count=count-1
            print (count)
            root.update_idletasks()
            root.update()
        loopRunned = False
        stopLoop = False
    else:
        stopLoop = True
root = Tk()
root.title("GUI на Python")
root.geometry("300x250")
buttonText = StringVar()
buttonText.set("Clicks {}".format(clicks))
btn = Button(textvariable=buttonText, background="#555", foreground="#ccc",
             padx="20", pady="8", font="16", command=click_button)
btn.place(relx=0.8, rely=0.9, anchor="c", height=30, width=100, bordermode=INSIDE)
root.mainloop()

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version