2016-11-16 40 views
-3
if v==1:     #some how v becomes equal to 1# 
     c_object=abcd() 
class abcd():     #class abcd created# 
     root=Tk() 

The code seems to run succesfully until here but gives blank window after this为什么Tkinter窗口在执行时是空白的?

 def __init__(self): 
      label_1=i1=Label(root,text="?") 
      label_1.pack(anchor=W) 
      self.c=Entry(root) 
      self.c.pack(anchor=E) 
     def execution(self): 
     ???? 
     root.mainloop() 
+2

我试着运行你的代码并得到'SyntaxError:invalid syntax'。我用'pass'替换''''并且得到了'NameError:名字'v'没有被定义。我添加了'v = 1'并得到了'NameError:name'abcd'未定义'。我将类定义移动到条件之上,并得到了'NameError:name'Tk'未定义'。请提供一个演示你的问题的[mcve]。 – Kevin

回答

2

没有在你的__init__函数执行过,因为root.mainloop执行第一,类定义进行评估的时候,它永远不会返回,直到你关闭该窗口。

一个可能的解决方案是将root = Tk()root.mainloop()移到该函数中。

class abcd():     #class abcd created# 
    def __init__(self): 
     root=Tk() 
     label_1=i1=Label(root,text="?") 
     label_1.pack(anchor=W) 
     self.c=Entry(root) 
     self.c.pack(anchor=E) 
     root.mainloop() 

然而,这是很难说这是否是最好的解决办法,不知道你的代码的其余部分的样子。

+0

谢谢你,凯文,我是新来stackexchange,并会记住你的意见 – ojashex

相关问题