TKinter вызывает один класс из другого класса, используя модальный диалог верхнего УРОВНЯ

#python #python-3.x #tkinter

#python #python-3.x #tkinter

Вопрос:

У меня есть два файла python с именем as .Оба файла помещаются в пакет [com] scr1.py scr2.py Когда я нажимаю кнопку «Далее» в scr1, мне нужно вызвать другой класс src2, используя toplevel_dialog, но я не могу вызвать другой класс [scr2.py ].Пожалуйста, предложите мне, что мне нужно изменить

scr1.py

 import tkinter as tk 
from tkinter import *
from tkinter import ttk 
import tkinter as tk 
import com.scr2
root = Tk()   
def Create_Toplevel():
        print("inside Create_Toplevel method") 
        top = Toplevel( com.scr2)  
        top.mainloop() 

class scr1():
    root.title("Employee Details")
    root.geometry("350x270") 
    T = Text(root, height = 5, width = 15) 
    
    l = Label(root, text = "Employee Id") 
    l.config(font =("Courier", 10)) 
    EmployeeId = "500" 
    b1 = Button(root, text = "Next", command= Create_Toplevel() ) 
    T.insert(tk.END, EmployeeId)   
    l.pack() 
    T.pack() 
    b1.pack() 
        
def Close_Toplevel():
           print("inside Close_Toplevel method") 

   
def main():     
    scr1obj = scr1()   
    root.mainloop()

if __name__ == '__main__':
    main()
  

src2.py

 import tkinter as tk 
from tkinter import *
from tkinter import ttk 
import tkinter as tk 
root = Tk()  
class scr2(): 
    root.title("Employee Details")
    root.geometry("350x270") 
    T = Text(root, height = 5, width = 10)     
    Label1= Label(root, text = "Employee Address") .place(x=30,y=30)
    T1= Text(root, height = 2, width = 20) .place(x=140,y=30)    
    Label2= Label(root, text = "MailId") .place(x=30,y=100)
    T2= Text(root, height = 2, width = 20) .place(x=140,y=80)
    b1 = Button(root, text = "confirm Details") .place(x=190,y=150)     

def main():     
    scr2obj = scr2()
    root.mainloop()

if __name__ == '__main__':
    main()
  

Комментарии:

1. «Но я не могу вызвать другой класс» ? Почему? Показывает ли он какую-либо ошибку? И я не думаю, что именно так вы правильно определяете класс, я бы посоветовал посмотреть учебные пособия по ООП с помощью tkinter. На данный момент попробуйте заменить class sc2 на def sc2() .

2. @CoolCloud заменяет класс sc2 на def sc2(), но показывает ошибку типа «Ошибка атрибута: модуль ‘example.scr2’ не имеет атрибута ‘_last_child_ids’ » Приложение не запущено