[英]load new frame/window while clicking the button with tkinter
我一直在制作一個 tkinter 程序,在該程序中我必須在單擊按鈕時加載新框架/窗口
from tkinter import *
import os
import tkinter.messagebox as tm
t=Tk()
t.title('Gym Management')
t["bg"]="black"
#declaration of frame
top=Frame(t)
top.grid(row=0,columnspan=2)
left=Frame(t)
left.grid(row=1,column=0)
right=Frame(t,bg="black")
right.grid(row=1,column=1)
#top frame
l1=Label(top,text="Silver`s Gym",fg="yellow",bg="black",font="impact 50 bold",pady=30)
l1.grid(sticky=E)
#left frame
img1=PhotoImage(file="1.png")
i1=Label(left,image=img1,padx=10)
i1.grid(row=0,column=0,sticky=E)
#right frame
l2=Label(right,text="USERNAME",fg="white",bg="black",padx=10,width=10)
l2.grid(row=0,column=0)
l3=Label(right,text="PASSWORD",fg="white",bg="black",padx=10,width=10)
l3.grid(row=1,column=0)
e2=Entry(right)
e2.grid(row=0,column=1)
e3=Entry(right,show="*")
e3.grid(row=1,column=1)
checkbox = Checkbutton(right, text="Keep me logged in",fg="white",bg="black")
checkbox.grid(columnspan=2)
# defining login button
def login_btn_clickked():
enter code here`#print("Clicked")
username = e2.get()
password = e3.get()
#print(username, password)
if username == "john" and password == "password":
tm.showinfo("Login info", "Welcome John")
else:
tm.showerror("Login error", "Incorrect username")
#defining signup button
def sugnup_btn_clickked():
filename = 'test.py'
os.system(filename) #Open file [Same as Right-click Open]
os.system('notepad '+filename)
logbtn = Button(right, text="Login", command = login_btn_clickked,width=15,padx=2)
logbtn.grid(row=3,column=0)
signup = Button(right, text="sign up", command = sugnup_btn_clickked,width=15,padx=2)
signup.grid(row=3,column=1)
t.mainloop()
我應該添加什么來做到這一點? 我還沒有學習 tk 的概念,所以請用我所做的方式解釋它
在談論 tkinter 時,請非常非常小心地使用單詞框架和單詞窗口。
他們彼此非常非常不同。
tkinter 中的Frame
小部件本質上是您將東西放入其中的“盒子”。它們可用於將不同的小部件分離到它們自己的窗口中的容器中,類似於(盡管不相同) div
在 HTML 中的工作方式。
在 tkinter Tk()
窗口和Toplevel
小部件中有兩種不同類型的“窗口”。
關鍵的區別在於,您不應該擁有多個Tk()
窗口,這個答案解釋了為什么會出現這種情況。 另一方面, Toplevel
小部件可以隨時隨地使用,並且應該在您的應用程序需要多個窗口時用作“額外窗口”。
下面的腳本顯示了如何使用按鈕來創建Frame
和Toplevel
,其中新的Frame
小部件只是空的紅色方塊,而新的Toplevel
小部件只是空的窗口
from tkinter import *
root = Tk()
def frame():
Frame(root, bg="red", width=100, height=100).pack(padx=5, pady=5)
def window():
Toplevel(root)
framebutton = Button(root, text="Frame", command=frame)
framewindow = Button(root, text="Window", command=window)
framebutton.pack()
framewindow.pack()
root.mainloop()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.