У меня проблема с зависанием приложения на Python. Я использовал библиотеку tkinter, чтобы создать какое-то приложение. Когда я нажимаю кнопку «Отправить», она вызывает функции, которые длятся 3 минуты, и на эти 3 минуты приложение зависает... Я хочу видеть все журналы этой функции «вживую». Я не могу подождать 3 минуты и получить все журналы.
Ниже приведен пример моего кода:
import tkinter as tk
from tkinter import ttk
from tkinter import scrolledtext
import time
class Frames:
def main_frame(self, win):
# Main Frame
main = ttk.LabelFrame(win, text="")
main.grid(column=0, row=0, sticky="WENS", padx=10, pady=10)
return main
def button_frame(self, win):
# Button Frame
butt_frame = ttk.LabelFrame(win, text="Button")
butt_frame.grid(column=0, row=0, sticky='NWS')
def _send_button():
for i in range(10):
self.write_text_console("{0}\n".format(i))
time.sleep(0.5)
# Send Button
ttk.Label(butt_frame, text=" ").grid(column=0, row=8)
button = tk.Button(butt_frame, text="Send", command=_send_button, foreground='black')
button.grid(column=0, row=13, sticky=tk.EW)
def scrolled_text_widget(self, win):
ttk.Label(win, text=" ").grid(column=0, row=1)
ttk.Label(win, text="Console Output:").grid(column=0, row=2, sticky=tk.W)
self.scr = scrolledtext.ScrolledText(win, width=100, height=10, wrap=tk.WORD, state="disabled")
self.scr.grid(column=0, row=3, columnspan=5)
def write_text_console(self, string, color="black", tag="console"):
self.scr.configure(state='normal')
self.scr.insert('end', string, tag)
self.scr.tag_config(tag, foreground=color)
self.scr.configure(state='disabled')
self.scr.see("end")
win = tk.Tk()
win.geometry("845x300")
win.resizable(0, 0)
frames = Frames()
main = frames.main_frame(win)
frames.button_frame(main)
frames.scrolled_text_widget(main)
win.mainloop()
Этот пример показывает мою проблему. Когда вы нажимаете кнопку «Отправить», приложение зависает на 5 секунд. Но мне нужно видеть журналы во время цикла.
Как я могу решить эту проблему?
У меня проблема с зависанием приложения на Python. Я использовал библиотеку tkinter, чтобы создать какое-то приложение. Когда я нажимаю кнопку «Отправить», она вызывает функции, которые длятся 3 минуты, и на эти 3 минуты приложение зависает... Я хочу видеть все журналы этой функции «вживую». Я не могу подождать 3 минуты и получить все журналы. Ниже приведен пример моего кода: [code]import tkinter as tk from tkinter import ttk from tkinter import scrolledtext import time
class Frames:
def main_frame(self, win):
# Main Frame main = ttk.LabelFrame(win, text="") main.grid(column=0, row=0, sticky="WENS", padx=10, pady=10) return main
win = tk.Tk() win.geometry("845x300") win.resizable(0, 0) frames = Frames() main = frames.main_frame(win) frames.button_frame(main) frames.scrolled_text_widget(main) win.mainloop() [/code] Этот пример показывает мою проблему. Когда вы нажимаете кнопку «Отправить», приложение зависает на 5 секунд. Но мне нужно видеть журналы во время цикла. Как я могу решить эту проблему?