gpt4 book ai didi

python - 使用 Tkinter 中的按钮导航到应用程序的不同页面?

转载 作者:IT老高 更新时间:2023-10-28 21:01:46 25 4
gpt4 key购买 nike

我有一个很简单的问题。在 Tkinter (python) 中,我想知道谁使用按钮来访问我的应用程序的不同页面,例如注册页面和登录页面。我知道 GUI 没有网站那样的“页面”,我已经看到了几种不同的方法,但是链接到不同页面的最佳方法是什么?

最佳答案

使每个页面成为一个框架。然后,您需要做的所有按钮就是隐藏任何可见的内容,然后使所需的框架可见。

一种简单的方法是将帧堆叠在一起(这是 place 有意义的时候),然后,lift()您希望可见的框架。当所有页面大小相同时,此技术效果最佳;实际上,它需要您明确设置包含框架的大小。

下面是一个人为的例子。这不是解决问题的唯一方法,只是证明这不是一个特别难解决的问题:

import Tkinter as tk

class Page(tk.Frame):
def __init__(self, *args, **kwargs):
tk.Frame.__init__(self, *args, **kwargs)
def show(self):
self.lift()

class Page1(Page):
def __init__(self, *args, **kwargs):
Page.__init__(self, *args, **kwargs)
label = tk.Label(self, text="This is page 1")
label.pack(side="top", fill="both", expand=True)

class Page2(Page):
def __init__(self, *args, **kwargs):
Page.__init__(self, *args, **kwargs)
label = tk.Label(self, text="This is page 2")
label.pack(side="top", fill="both", expand=True)

class Page3(Page):
def __init__(self, *args, **kwargs):
Page.__init__(self, *args, **kwargs)
label = tk.Label(self, text="This is page 3")
label.pack(side="top", fill="both", expand=True)

class MainView(tk.Frame):
def __init__(self, *args, **kwargs):
tk.Frame.__init__(self, *args, **kwargs)
p1 = Page1(self)
p2 = Page2(self)
p3 = Page3(self)

buttonframe = tk.Frame(self)
container = tk.Frame(self)
buttonframe.pack(side="top", fill="x", expand=False)
container.pack(side="top", fill="both", expand=True)

p1.place(in_=container, x=0, y=0, relwidth=1, relheight=1)
p2.place(in_=container, x=0, y=0, relwidth=1, relheight=1)
p3.place(in_=container, x=0, y=0, relwidth=1, relheight=1)

b1 = tk.Button(buttonframe, text="Page 1", command=p1.show)
b2 = tk.Button(buttonframe, text="Page 2", command=p2.show)
b3 = tk.Button(buttonframe, text="Page 3", command=p3.show)

b1.pack(side="left")
b2.pack(side="left")
b3.pack(side="left")

p1.show()

if __name__ == "__main__":
root = tk.Tk()
main = MainView(root)
main.pack(side="top", fill="both", expand=True)
root.wm_geometry("400x400")
root.mainloop()

关于python - 使用 Tkinter 中的按钮导航到应用程序的不同页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14817210/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com