Я новичок в python, недавно я пытаюсь работать над настольным приложением, где требуется переключение экрана между различными модулями python. Я использовал многопроцессорную библиотеку для одновременного запуска различных модулей Python без зависания графического интерфейса, но проблема в том, что если у меня есть родительское окно (root), в котором запущены процессы для открытия другого скрипта Python с графическим интерфейсом в нем, родительский окно замерзнет, когда я вызову метод top.destroy ().
Это мой список модулей Python.
Он останавливает мой экран входа в систему, когда всплывает экран регистрации.
import tkinter
import os
import platform
from MMCS_DB import validate_user, get_logged_in_user, get_user_position
import multiprocessing
top = tkinter.Tk()
top.geometry("800x600")
top.title("Multimedia Consultation Software")
top.resizable(False, False)
class multiProcessWork():
def s1(self): # this is where it runs all the modules
if platform.system() == "Windows":
os.system('MMCS_registration.py')
elif platform.system() == "Linux":
os.system('python3')
elif platform.system() == "Darwin":
os.system('python3 ./MMCS_registration.py')
def s2(self):
if platform.system() == "Windows":
os.system('student_main.py')
elif platform.system() == "Linux":
os.system('python3')
elif platform.system() == "Darwin":
os.system('python3 ./student_main.py')
def s3(self):
if platform.system() == "Windows":
os.system('lecturer_main.py')
elif platform.system() == "Linux":
os.system('python3')
elif platform.system() == "Darwin":
os.system('python3 ./lecturer_main.py')
def registerFunc():
p1 = multiprocessing.Process(target=multiProcessWork().s1, args=())
p1.start()
top.destroy()
print("register") # here's the function which it will bring up a new registration screen.
Итак, я хотел уничтожить родительское окно, когда появилось новое окно. Есть ли способы сделать это?