Ответы Mail.ru: Можно ли запустить в двух потоках две GUI сделанных на Tkinter?

Можно ли запустить в двух потоках две GUI сделанных на Tkinter?

мне нужно что-бы я одним файлом запускал в 1 патоке приложение от Tkinter и во втором потоке тоже. но когда я это делаю то выдаёт много ошибок. Exception in thread Thread-1

P.s я уже ншол решение проблемы надо было просто продублировать библиотеку и изменить название тогда один файл использует Tkinter а второй Tkinter_2

Дополнен 3 месяца назад

Лучший ответ

Прочитайте про модуль multiprocessing Вот примерный код как это можно реализовать

 import multiprocessing 
import tkinter as tk 
 
def gui1(): 
    # Код для первого GUI-приложения 
    root1 = tk.Tk() 
    # Остальной код первого GUI-приложения
    root1.mainloop() 
 
def gui2(): 
    # Код для второго GUI-приложения 
    root2 = tk.Tk() 
    # Остальной код второго GUI-приложения
    root2.mainloop() 
 
if __name__ == '__main__': 
    # Создаем два процесса для запуска двух GUI-приложений 
    p1 = multiprocessing.Process(target=gui1) 
    p2 = multiprocessing.Process(target=gui2) 
 
    # Запускаем процессы 
    p1.start() 
    p2.start() 
 
    # Ожидаем завершения процессов 
    p1.join() 
    p2.join() 
 

Остальные ответы

Вся графика должна отрисовываться в основном потоке процесса, это виндозное ограничение. Поэтому либо разные процессы, как показано выше, либо твои потоки должны заниматься маршалингом своих сообщений между собой и главным потоком - я ХЗ, можно ли такое делать в этом ткинтере.