Python GUI打开“新页面”

2024-10-03 19:22:35 发布

您现在位置:Python中文网/ 问答频道 /正文

当我按下按钮时,我想打开一个新的面。不是一个新窗口,窗口应该是相同的,只是界面应该改变。在

如果不打开新窗口,我怎么解决这个问题呢?在

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()

Tags: text界面ispagebuttonthis按钮label
1条回答
网友
1楼 · 发布于 2024-10-03 19:22:35

您可以在同一个地方创建两个框架,然后使用lift和lower方法将它们提升到另一个框架上(示例取自Bryan Oakleyhere并稍作修改):

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()

你可以把“第一页”放在一个框架里,把“第二页”放在另一个框架里

相关问题 更多 >