Я новичок в Tkinter.Я экспериментировал с этим, но хотя Tkinter запускается просто отлично, через некоторое время он иногда зависает без всякой причины.На самом деле, странная вещь, которая случается, состоит в том, что, хотя окна Tkinter больше не обновляют информацию, счетчик продолжает печатать НА МОЙ WINDOWS DESKTOP ЛЕВАЯ СТОРОНА!(просто черная коробка bg с белым шрифтом, которая показывает номер счетчика) и в конечном итоге находит номер 777 и заканчивается.Но между ними долго зависает, даже без печати (не на моем рабочем столе Windows)
это обычное окно tkinter это вывод на консоль все хорошо здесь
сумасшедшее отображение Windows здесь
Простая программа здесь генерирует случайные числа от 1 до 10000 и должна 1), если найдено 777, она должна напечатать счетчик и выйти 2) если найдено какое-либо число от 1 до 100, должно быть напечатано число и счетчик.
Я пытаюсь научиться печатать новый контент в той же строке, и если что-то происходит, выведите дополнительную информацию в другой строке.пока первое (или более) продолжает обновляться.
Я не уверен, правильно ли я выхожу из программы или как именно мне следует использовать / вызывать функцию Tkinter для обновления информации на экране.
Любая помощь или советы наиболее ценные.
from tkinter import *
import random
import time
tk=Tk()
i = 0
counter = 0
tk.title("Testing...")
tk.geometry('300x200')
canvas_width = 200
canvas_height = 100
canvas = Canvas(tk, width=canvas_width, height=canvas_height, bg='white')
canvas.pack(expand=YES)
def screen(Found):
#canvas.create_text(20, 20, text="Counter:" + str(counter), font="Times 20 italic")
widget = Label(canvas, text="Counter:" + str(counter), fg='white', bg='black')
widget.grid(column=0, row=0)
if Found:
widget = Label(canvas, text="Number " + str(i) +" was found at counter:" + str(counter), fg='white', bg='black')
widget.grid(column=0, row=1)
found = False
loop = True
while loop:
counter += 1
i = random.randint(1, 10000)
if i in range(1, 100):
print("Found i = ", i, " in counter:", counter)
Found = True
else:
Found = False
if i == 777:
loop = False
print("JUST FOUND 777")
print("Counter:", counter)
screen(Found)
tk.update_idletasks()
tk.update()
# tk.mainloop()