Переключение окон между модулями Python без использования фрейма в Python Tkinter - PullRequest
0 голосов
/ 13 января 2019

Я новичок в 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.

Итак, я хотел уничтожить родительское окно, когда появилось новое окно. Есть ли способы сделать это?

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