Python GUI - 将类中的一个GUI链接到另一个类

时间:2013-03-30 17:58:40

标签: python widget tkinter

我要做的是将GUI从一个单独的文件中的一个类链接到另一个文件。 我的第一堂课是一个主菜单,它会显示一些链接到另一个窗口的按钮。 第二个类显示一个不同的窗口,但我现在遇到的问题是我不知道如何链接第一个类中的按钮来调用第二个类。 这是我到目前为止的代码:

第一个文件,主菜单:

from tkinter import *
import prac2_link


class main:
    def __init__(self,master):
        frame = Frame(master, width=80, height=50)
        frame.pack()
        self.hello = Label(frame, text="MAIN MENU").grid()
        self.cont = Button(frame,text="Menu option 1", command=prac2_link.main2).grid(row=1)



root = Tk()
application = main(root)
root.mainloop()

第二档:

from tkinter import *

class main2:
    def __init__(self):
        frame1 = Frame(self, width=80, height=50)
        frame1.pack()
        self.hello = Label(frame1, text="hello, its another frame").grid(row=0,column=0)

1 个答案:

答案 0 :(得分:1)

要创建新窗口,您必须使用Toplevel窗口小部件。您可以将它用作main2类的超类:

class main2(Toplevel):
    def __init__(self):
        Toplevel.__init__(self)
        self.frame= Frame(self, width=80, height=50)
        self.label = Label(self.frame, text='this is another frame')
        self.frame.grid()
        self.label.grid()

然后你只需要在另一个类的Button的事件处理程序中创建一个实例:

class main1:
    def __init__(self, master):
        # ...
        self.cont = Button(frame,text="Menu option 1", command=self.open_main2).grid(row=1)
    def open_main2(self):
        prac2_link.main2()