окно tkinter не закрывается должным образом - PullRequest
0 голосов
/ 18 октября 2018

Мои окна приложений tkinter не закрываются должным образом.Я использую python 3.6.6 с tkinter 8.6

Мой код делает в основном это:

Откройте процесс, где:

  1. Тестовая функция вызывается черезПоток, который закрывает окно Gui после 3s
  2. Окно Gui создано
  3. Ожидание завершения потока (присоединение) и окно предположения было закрыто

Я пытался использовать:

  • quit -> окно закрывается только когда я наводю на него указатель мыши
  • destroy -> destroy не возвращает

Я опустил его доследующий код, пожалуйста, скопируйте и выполните и / или скажите мне, что не так ...

from time import sleep, time
import threading
from multiprocessing import Process, set_start_method
from tkinter import *
CtrlApplObj = None

def Start():
    global CtrlApplObj
    CtrlApplObj = None
    CtrlApplObj = ControlApplication()
    CtrlApplObj.run()

def End():
    print("Quit now...")
    #CtrlApplObj.root.destroy()
    CtrlApplObj.root.quit()

class ControlApplication():
    def __init__(self):
        pass

    def run(self):
        self.root=Tk()
        print("Mainloop...")
        self.root.mainloop()

def test():
    sleep(3)
    End()

def execute():
    T1 = threading.Thread(target=test)
    T1.start()
    Start()
    T1.join()

if __name__ == "__main__":
    set_start_method("spawn")
    for i in range(2):
        TestProcess = Process(target=execute)
        TestProcess.start()
        TestProcess.join()

1 Ответ

0 голосов
/ 26 октября 2018

Мое окончательное решение не заключалось в использовании каких-либо операций tkinter в тестовом потоке.Затем уничтожение сработало.

У меня была еще одна проблема с закрытием процесса тестирования.Это было потому, что очередь не была пуста.Этот запертый процесс для закрытия.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...