Когда я пытался запустить ваш код, у меня возникли некоторые проблемы ...
tk.Tk
- это тип, для создания и экземпляра используйте tk.Tk()
Первая ошибка: AttributeError: 'int' object has no attribute 'tk'
, Я нашел здесь возможный ответ { ссылка } и изменил root = tk.Tk
на root = tk.Tk()
, чтобы создать экземпляр Tk. Если это не то, что вы намеревались сделать, извините!
Func()
попытался получить доступ к глобальному
UnboundLocalError: local variable 'a' referenced before assignment
. a
был определен до Func()
, и к нему нельзя было получить доступ из функции. Чтобы исправить это, добавьте global a
внутри функции (но с точки зрения новичка я думаю, вы можете быть осторожны с использованием глобальных переменных. Возможно, измените его на параметр)
not a == 5
никогда не запускался
Код запущен, но ничего не печатается. Чтобы проверить, работает ли функция, я изменил a = 5
на a = 0
, чтобы он печатал что-то 5 раз. После пятикратной печати while-l oop больше не срабатывает, потому что условие not a == 5
больше не выполняется, а a
можно изменить только (начиная с этого кода) изнутри этого l oop.
Вот еще раз ваш код с изменениями.
import tkinter as tk
from tkinter import *
from tkinter.ttk import *
root = tk.Tk() # Tk() to create an instance!
a = 0
def Func():
global a # a is global
while not a == 5:
print ('A does not equal five.')
a += 1
root.after(0, Func)
root.mainloop()
Надеюсь, это было то, что вы искали!