Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使Tkinter输入字段在按下按钮时可见_Python_Tkinter - Fatal编程技术网

Python 如何使Tkinter输入字段在按下按钮时可见

Python 如何使Tkinter输入字段在按下按钮时可见,python,tkinter,Python,Tkinter,我正在使用Python Tkinter制作一个简单的登录菜单。这段代码适用于登录和所有这些东西,但我想创建一个工作的createnewaccount按钮或类似的东西。我将使用列表进行此操作,但首先我需要确保在单击“创建新帐户”按钮时弹出输入字段,以下是代码:- from tkinter import* from tkinter import messagebox class Login: def __init__(self,root): self.root=root

我正在使用Python Tkinter制作一个简单的登录菜单。这段代码适用于登录和所有这些东西,但我想创建一个工作的createnewaccount按钮或类似的东西。我将使用列表进行此操作,但首先我需要确保在单击“创建新帐户”按钮时弹出输入字段,以下是代码:-

from tkinter import*
from tkinter import messagebox



class Login:
    def __init__(self,root):
        self.root=root
        self.root.title("Login")
        self.root.geometry("1199x600+100+50")
        
        self.bg=PhotoImage(file="png.png")
        self.bg_image=Label(self.root,image=self.bg).place(x=0,y=0,relwidth=1,relheight=1)
        
        
        #Frame
        Frame_login=Frame(self.root,bg="white")
        Frame_login.place(x=150,y=150,height=340,width=500)
        
        title=Label(Frame_login,text="Login Here",font=("Impact",35, "bold","underline"),fg="red",bg="white").place(x=160,y=30)
        desc=Label(Frame_login,text="Login Area",font=("Goudy old",15, "bold","underline"),fg="purple",bg="white").place(x=80,y=100)
        lbl_user=Label(Frame_login,text="Username:",font=("Goudy old",15,"underline","bold"),fg="#00ffff",bg="white").place(x=115,y=140)
        self.txt_user=Entry(Frame_login,font=("times new roman", 15),bg="lightgray")
        self.txt_user.place(x=115,y=170,width=350,height=35)
        
        lbl_pass=Label(Frame_login,text="Password:",font=("Goudy old",15,"underline","bold"),fg="#00ffff",bg="white").place(x=115,y=210)
        self.txt_pass=Entry(Frame_login,font=("times new roman", 15),bg="lightgray")
        self.txt_pass.place(x=115,y=240,width=350,height=35)
        
        forget_btn= Button(Frame_login,command=self.register,text="Create New Account",cursor="hand2", bg="white", fg='lime', bd=0,font=("times new roman", 12)).place(x=115,y=280)
        log_btn= Button(self.root,command=self.login_function,text="Login",cursor="hand2", fg="#d77337", bg="#d77337", font=("times new roman", 20)).place(x=315,y=470,width=180,height=40)
        
        
        
        
    def login_function(self):
          if self.txt_pass.get()=="" or self.txt_user.get()=="":
              messagebox.showerror("Error!","All fields are required", parent=self.root)
          elif self.txt_user.get()!="abcd" or self.txt_pass.get()!="1234":
              messagebox.showerror("Error!"," Invalid Username or Password", parent=self.root)
          else:
              messagebox.showinfo("Welcome!","Succesfully Logged In!")
    
    
        
            

root=Tk()
obj=Login(root)
root.mainloop()   

下面是一个简单的示例,说明了这可能是什么样子:

从tkinter导入Tk、框架、按钮、条目、标签
类登录(框架):
定义初始化(自身,父级):
帧。\uuuu初始化(自,父)
self.parent=parent
#数据帧
self.data\u frame=帧(self)
自数据帧包(pady=10)
#用户名:
标签(self.data_frame,text='Username:').pack()
#用户名条目
self.username=条目(self.data\u框架)
self.username.pack()
#密码:
标签(self.data_frame,text='Password:').pack()
#密码输入
self.password=输入(self.data\u帧)
self.password.pack()
#钮扣架
self.btn_frame=帧(self)
self.btn_frame.pack()
#登录btn
按钮(self.btn_frame,text='Login',command=self.Login).pack(side='left',padx=10,pady=10)
#注册按钮
按钮(self.btn\u frame,text='Sign Up',command=self.Sign\u).pack(side='left',padx=10,pady=10)
def登录(自我):
打印('登录成功')
root.destroy()
def注册(自我):
注册(root.pack)()
自我毁灭
班级注册(框架):
定义初始化(自身,父级):
帧。\uuuu初始化(自,父)
self.parent=parent
#数据帧
self.data\u frame=帧(self)
自数据帧包(pady=10)
#用户名:
标签(self.data_frame,text='Username:').pack()
#用户名条目
self.username=条目(self.data\u框架)
self.username.pack()
#密码:
标签(self.data_frame,text='Password:').pack()
#密码输入
self.password=输入(self.data\u帧)
self.password.pack()
#钮扣架
self.btn_frame=帧(self)
self.btn_frame.pack()
#登录btn
按钮(self.btn\u frame,text='Sign Up',command=self.Sign\u).pack(side='left',padx=10,pady=10)
#注册按钮
按钮(self.btn_frame,text='Cancel',command=self.Cancel).pack(side='left',padx=10,pady=10)
def注册(自我):
打印('已注册')
登录名(root).pack()
自我毁灭
def取消(自我):
登录名(root).pack()
自我毁灭
root=Tk()
登录名(root).pack()
root.mainloop()

这两个类几乎都是框架,可以根据用户按下的按钮进行更改,还可以向方法添加更多功能。否则,这两个类几乎完全相同,它们几乎都是副本,只是更改了按钮名称和方法名称等一些内容其余的都是相同的

将按钮分配给一个命令,该命令将打包条目小部件,但在您的情况下,您需要一个全新的框架