我正在开发基于GUI的python项目。在传递self类的方法的按钮命令中没有效果,即该方法没有被调用。 没有显示编译时间或运行时错误,因此很难识别问题。源代码是:
class PageTwo(tk.Frame):
rad
由于源代码太长,我发现问题的两个块也分别在下面提到:
def e_detail(self):
soh_registeration.insert(u1.get(),p1.get(),s1.get(),m1.get(),em1.get(),ad1.get())
messagebox.showinfo("DETAIL STORED", "YOUR INFORMATION IS STORED SECURELY")
def __init__(self, parent, controller):
tk.Frame.__init__(self, parent)
label = tk.Label(self, text="REGISTERATION DETAILS", font=LARGE_FONT)
label.grid(pady=10,padx=10)
label1 = tk.Label(self, text="USERNAME", font=TEXT)
label1.grid(row=3,column=0)
labelp = tk.Label(self, text="PASSWORD", font=TEXT)
labelp.grid(row=4,column=0)
cpdl = tk.Label(self, text="CONFIRM PASSWORD", font=TEXT)
cpdl.grid(row=5,column=0)
shopl = tk.Label(self, text="SHOP NAME", font=TEXT)
shopl.grid(row=6,column=0)
cl= tk.Label(self, text="MOBILE NO.:", font=TEXT)
cl.grid(row=7,column=0)
el = tk.Label(self, text="E-MAIL ID", font=TEXT)
el.grid(row=8,column=0)
al = tk.Label(self, text="AADHAR DETAIL", font=TEXT)
al.grid(row=9,column=0)
global u1,p1,p2,s1,m1,em1,ad1,button2
u1=tk.StringVar()
username= tk.Entry(self,textvariable=u1, bd=5)
username.grid(row=3,column=1)
p1=tk.StringVar()
pd= tk.Entry(self,show='*',textvariable=p1, bd=5)
pd.grid(row=4,column=1)
p2=tk.StringVar()
confpd= tk.Entry(self,show='*',textvariable=p2, bd=5)
confpd.grid(row=5,column=1)
s1=tk.StringVar()
sn= tk.Entry(self,textvariable=s1, bd=5)
sn.grid(row=6,column=1)
m1=tk.StringVar()
cn= tk.Entry(self,textvariable=m1, bd=5)
cn.grid(row=7,column=1)
em1=tk.StringVar()
email= tk.Entry(self,textvariable=em1, bd=5)
email.grid(row=8,column=1)
ad1=tk.StringVar()
an= tk.Entry(self,textvariable=ad1, bd=5)
an.grid(row=9,column=1)
button2 = tk.Button(self, text="SUBMIT YOUR DETAILS",
command=lambda: self.e_detail)
button2.grid(row=10, column=0, padx=20, pady=20)
和: -
def e_detail(self):
soh_registeration.insert(u1.get(),p1.get(),s1.get(),m1.get(),em1.get(),ad1.get())
messagebox.showinfo("DETAIL STORED", "YOUR INFORMATION IS STORED SECURELY")
我猜这个问题非常基础。我还是python编程的新手,有人请帮帮我。
答案 0 :(得分:1)
问题似乎是self.e_detail
未被调用。
, command=lambda: self.e_detail
基本上告诉按钮调用提及名为self.e_detail
的方法的匿名方法。而是通过将其替换为调用方法:
, command=lambda: self.e_detail()
或者由于该方法没有传递任何参数,只需:
, command=self.e_detail