2016-11-16 42 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

相關問題