在这段代码中,我试图在同一个窗口中执行我的两个不同的代码,或者它似乎在同一窗口中执行。当我点击";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()
确保对其进行修改以满足您的需求。