Я хочу выполнить некоторый код во время работы Tk.mainloop (), поэтому я думаю, что мне нужен модуль потоков.
Я попытался поместить Tk.mainloop()
в метод run
класса потока, а затем поместил код, который хочу запустить, пока mainloop работает в другом потоке.
from threading import Thread
import tkinter as tk
class MyThread(Thread):
def __init__(self):
Thread.__init__(self)
def run():
# window is tk.Tk()
window.mainloop()
class MyCode(Thread):
# my code
TkinterThread = MyThread()
TkinterThread.start()
OtherThread = MyCode()
OtherThread.start()
и ткинтер сообщает мне об ошибке
RuntimeError: Calling Tcl from different apartment
поэтому я искал в интернете и понял, что основной цикл может быть запущен только из потока, потому что работает только в одном из них.
Итак, есть ли способ запустить другой поток, пока работает mainloop?