<p>有太多的变化无法描述。在</p>
<p>顺便说一句:我使用<code>Frame</code>对小部件进行分组,然后我可以显示一个框架(<code>pack()</code>/<code>grid()</code>),并隐藏另一个框架(<code>pack_forget()</code>/<code>grid_forget()</code>)。这个方法还有更多有用的例子。在</p>
<pre><code>import tkinter as tk
import time
# - functions -
def clock():
txt = time.strftime('%I:%M:%S', time.localtime())
label_time.config(text=txt)
root.after(1000, clock)
def on_register(): #Opens registration confirmation window
newwin = tk.Toplevel(root)
display = tk.Label(newwin, text="\nYour account has been created.\nPlease log in with your new details.\n\nThis window may be closed.")
display.pack()
tk.Button(newwin, text='Close', command=newwin.destroy).pack()
def on_login(): #Opens registration confirmation window
newwin = tk.Toplevel(root)
if e1.get() == 'admin' and e2.get() == '12345':
display = tk.Label(newwin, text="\nYour are logged in.\n\nThis window may be closed.")
display.pack()
main_page.pack_forget() # hide it
other_page.pack() # show it
else:
display = tk.Label(newwin, text="\nWrong login or password.\n\nThis window may be closed.")
display.pack()
tk.Button(newwin, text='Close', command=newwin.destroy).pack()
def create_main_page():
global label_time
global e1
global e2
frame = tk.Frame(root)
#frame.pack() # don't show it
tk.Label(frame, text="Checkout System", background='grey').grid(row=0, column=1)
tk.Label(frame, text="Time:", background='grey').grid(row=1, column=1)
label_time = tk.Label(frame, text="Current System Time", background='grey')
label_time.grid(row=1, column=1)
clock()
tk.Label(frame, text="Username:", background='grey').grid(row=3, column=0, sticky='w')
tk.Label(frame, text="Password:", background='grey').grid(row=4, column=0, sticky='w')
e1 = tk.Entry(frame)
e1.grid(row=3, column=1)
e2 = tk.Entry(frame)
e2.grid(row=4, column=1)
login_button = tk.Button(frame, text="Login", width=10, command=on_login)
login_button.grid(row=5, column=1)
register_button = tk.Button(frame, text="Register", width=10, command=on_register)
register_button.grid(row=6, column=1)
return frame
def create_other_page():
frame = tk.Frame(root)
#frame.pack() # don't show it
tk.Label(frame, text="You are on other page", background='grey').grid(row=0, column=1)
return frame
# main -
root = tk.Tk()
root.title("Sale System")
root.geometry("500x500")
root.configure(background='grey')
main_page = create_main_page()
main_page.pack() # show it
other_page = create_other_page()
#other_page.pack() # don't show it yet
root.mainloop()
</code></pre>