Цикл не работает автоматически в Tkinter - PullRequest
0 голосов
/ 16 июня 2019

Я делаю графический интерфейс, где я могу включить цикл, но когда я запускаю цикл, он не запускается автоматически.В этом случае это не автоматически печатать «Тест».Сначала я должен нажать на опцию Проверить переменную

Я пытался переместить код вверх и вниз, но он не работает

# import tkinter
from tkinter import * 

# 1 = on
# 3 = off
# Define Default variable 
global x
x = 3

# Window preferences
root = Tk()

# Change Variables
def changeVar1():
    global x
    x = 1

def changeVar2():
    global x
    x = 3

def printVariable():
    print(x)

#  loop
    while x < 2:
        print ("Test")
# Buttons 
button_1 = Button(root, text="Start", command=changeVar1)
button_2 = Button(root, text="End", command=changeVar2)
button_3 = Button(root, text="Check variable", command=printVariable)

# Button Posistion
button_1.pack()
button_2.pack()
button_3.pack()



root.mainloop()

1 Ответ

0 голосов
/ 16 июня 2019

Вам необходимо использовать метод after, а не создавать цикл while внутри основного цикла tkinker, потому что основной цикл будет обрабатывать это.

= ^ .. ^ =

from tkinter import *

x = 6
root = Tk()

def changeVar1():
    global x
    x = 1

def changeVar2():
    global x
    x = 3

def printVariable():
    print(x)

# Buttons
button_1 = Button(root, text="Start", command=changeVar1)
button_2 = Button(root, text="End", command=changeVar2)
button_3 = Button(root, text="Check variable", command=printVariable)

# Button Posistion
button_1.pack()
button_2.pack()
button_3.pack()

# set timer delay for after method
time_delay = 100  # should by > 0

def task_function():
    if x < 2:
        print("test")
    # repeat after method
    root.after(time_delay, task_function)

# set after method
root.after(time_delay, task_function)

root.mainloop()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...