Я пытаюсь что-то сделать с виджетом в моем GUI из другого процесса. Это чисто для производительности, так как у меня запущены некоторые вещи, которые занимают много времени, например, блокировка меньшего процесса, работающего на полную мощность, что мне нужно
Я пытался использовать Pipe
для отправки данныхМне нужно выполнить основной процесс, а затем обновить виджет в основном процессе, однако в моем случае это работает недостаточно эффективно, потому что у меня есть 2 вещи, которые нужно поменять, и одна из них не требует времени, а другая -В течение долгого времени, оба они должны что-то делать с графическим интерфейсом, и программа сильно замедляется, потому что ожидает завершения длинного процесса recv()
. В идеале оба процесса должны выполняться на полной скорости.
from tkinter import *
from multiprocessing import Process
def update(label):
label.configure(text='on')
if __name__ == '__main__':
root = Tk()
label = Label(root, text='off')
label.pack()
p = Process(target=update, args=(label, ))
p.start()
root.mainloop()
Мне нужна метка, чтобы изменить текст с «выключено» на «включено». Когда этот код запускается, он выдает ошибку: TypeError: can't pickle _tkinter.tkapp objects
. Я понимаю, почему это невозможно, но мне нужно найти способ обойти это.