为什么执行时Tkinter窗口是空白的?

时间:2016-11-16 19:56:41

标签: python tkinter tkinter-canvas

if v==1:                   #some how v becomes equal to 1#
       c_object=abcd()
class abcd():                  #class abcd created#
       root=Tk()
  

代码似乎成功运行直到此处,但在此

之后给出了空白窗口
       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()

1 个答案:

答案 0 :(得分: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()

但是,很难说这是否是最佳解决方案,而不知道代码的其余部分是什么样的。