Как открыть дочерний фрейм в одном окне приложения в tkinter? - PullRequest
0 голосов
/ 29 сентября 2019

То, что я хочу, это когда я нажимаю на кнопку, должно открываться новое окно, и это окно должно быть дочерним по отношению к тому же главному окну, но то, что я получаю, - это новый экземпляр нового окна.Как решить эту проблему в tkinter ?

Вот скриншот того, что я не хочу, Каждый раз, когда создается новый экземпляр окна, я хочу сделать дочерний экземпляртого же главного окна:

def login_success():
def c1():
    top = Toplevel()
    top.title("c1")
    top.geometry("1000x600")


def c2():
    top = Toplevel()
    top.title("c1")
    top.geometry("1000x600")


def c3():
    top = Toplevel()
    top.title("c2")
    top.geometry("1000x600")

def write_frames():
     top = Toplevel()
     top.title("t2")
     top.geometry("1000x600")
     b1 = Button(top, text="c1", command=c1)
     b1.pack()
     b2 = Button(top, text="c2", command=c2)
     b2.pack()
     b3 = Button(top, text="c3", command=c3)
     b3.pack()

def write_instructions():
    top = Toplevel()
    top.title("t1")
    top.geometry("1000x600")
root = Tk()
root.geometry("1000x600")
button1 = Button(root,
               text="Frames",
               command=write_frames)
button1.pack()
button2 = Button(root,
               text="Instructions",
               command=write_instructions)
button2.pack()

1 Ответ

0 голосов
/ 29 сентября 2019

Вам просто нужно передать root как параметр для каждой функции, если я правильно понимаю, что вы имеете в виду

def login_success():


    def c1(root):
            top = Toplevel(root)
            top.title("c1")
            top.geometry("1000x600")


    def c2(root):
        top = Toplevel(root)
        top.title("c1")
        top.geometry("1000x600")


    def c3(root):
        top = Toplevel(root)
        top.title("c2")
        top.geometry("1000x600")

    def write_frames(root):
         top = Toplevel(root)
         top.title("t2")
         top.geometry("1000x600")
         b1 = Button(top, text="c1", command=lambda: c1(root))
         b1.pack()
         b2 = Button(top, text="c2", command=lambda: c2(root))
         b2.pack()
         b3 = Button(top, text="c3", command=lambda: c3(root))
         b3.pack()

    def write_instructions(root):
        top = Toplevel(root)
        top.title("t1")
        top.geometry("1000x600")

    root = Tk()
    root.geometry("1000x600")
    button1 = Button(root,
                   text="Frames",
                   command=lambda: write_frames(root))
    button1.pack()
    button2 = Button(root,
                   text="Instructions",
                   command=lambda: write_instructions(root))
    button2.pack()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...