如何退出我以前的代码(如何返回窗口)



在这段代码中,我试图在同一个窗口中执行我的两个不同的代码,或者它似乎在同一窗口中执行。当我点击";next_ button";是执行功能";next_screen";。这里我们又有一个按钮,我试图通过它执行我以前的(主屏幕(代码,但它不起作用。若我试图在同一个屏幕上执行两个代码的逻辑是错误的。然后请告诉我,然后我如何在同一根目录(屏幕或窗口(中执行两个或多个文件代码。

import tkinter as md
def next_screen():
    frame.destroy()
    root.geometry("300x200")
    
    def main_screen():
        next_frame.destroy()
        root.resizable(width = False, height = False)
        root.geometry("200x200")
                
    next_frame = md.Frame(root)
    next_frame.pack()
    label = md.Label(next_frame, text = "Click bellow button to go to main window", pady = 20)
    label.pack()
    button = md.Button(next_frame, text = "Clikc Me", font = "verdana 15", command = main_screen)
    button.pack()

root = md.Tk()
root.geometry("200x200")
frame = md.Frame(root)
frame.pack()
label = md.Label(frame, text ="Main window", pady = 20)
label.pack()
next_button = md.Button(frame, text ="Go Forward", font = "verdana 15", command = next_screen)
next_button.pack()
root.mainloop()

有了这个代码,我可以继续前进,但不能再回来了。也许它会使用循环来执行。

如果您将类用于类似的事情,则会变得容易得多。下面是我做的一个快速示例:

import tkinter as md

class Screens:
    def __init__(self):
        self.frame = None
        self.main_screen()
    def main_screen(self):
        if self.frame is not None:
            self.frame.destroy()
        frame = md.Frame(root)
        frame.pack()
        label = md.Label(frame, text="Main window", pady=20)
        label.pack()
        next_button = md.Button(frame, text="Go Forward", font="verdana 15", command=self.next_screen)
        next_button.pack()
        self.frame = frame
    def next_screen(self):
        self.frame.destroy()
        next_frame = md.Frame(root)
        next_frame.pack()
        label = md.Label(next_frame, text="Click bellow button to go to main window", pady=20)
        label.pack()
        button = md.Button(next_frame, text="Clikc Me", font="verdana 15", command=self.main_screen)
        button.pack()
        self.frame = next_frame

root = md.Tk()
root.geometry("200x200")
screen = Screens()
root.mainloop()

确保对其进行修改以满足您的需求。

最新更新