Python GUI打开“新页面”
当我按下一个按钮时,我想打开一个新的页面。不是打开一个新窗口,而是保持窗口不变,只是界面要改变。
我该怎么做才能不打开新窗口呢?
from tkinter import *
page1=Tk()
label1=Label(page1, text="This is page 1")
label1.pack()
def topage2():
page2=Tk()
label2=Label(page2, text="This is page 2")
label2.pack()
button=Button(page1, text="To page 2", command=topage2)
button.pack()
mainloop()
1 个回答
0
你可以在同一个地方创建两个框,然后用提升和降低的方法把它们叠在一起(这个例子来自Bryan Oakley,稍微做了一些修改,具体可以点击这里查看):
import Tkinter as tk
class SampleApp(tk.Tk):
def __init__(self, *args, **kwargs):
tk.Tk.__init__(self, *args, **kwargs)
self.frame = tk.Frame(self)
self.frame2 = tk.Frame(self)
self.frame.place(relwidth=1, relheight=0.8, relx=0, rely=0)
self.frame2.place(relwidth=1, relheight=0.8, relx=0, rely=0)
self.label = tk.Label(self.frame, text="Hello, world")
button1 = tk.Button(self, text="Click to hide label",
command=self.hide_label)
button2 = tk.Button(self, text="Click to show label",
command=self.show_label)
self.label.pack()
button1.place(relwidth=0.5, relheight=0.15, relx=0.0, rely=0.825)
button2.place(relwidth=0.5, relheight=0.15, relx=0.5, rely=0.825)
def show_label(self, event=None):
self.frame.lift(self.frame2)
def hide_label(self, event=None):
self.frame.lower(self.frame2)
if __name__ == "__main__":
app = SampleApp()
app.mainloop()
你可以把“第一页”的内容放在一个框里,把“第二页”的内容放在另一个框里。