单击我的代码的运行模块时,小部件未显示

时间:2015-06-17 19:22:20

标签: python button tkinter widget

我附上了我的代码,以便您可以看到是否可以识别问题。一切正常,窗口弹出,但按钮小部件没有显示:

from Tkinter import *

class Application(Frame):
  """Login"""

def _init_(self, master):
          self.master = master

def create_widgets(self):
    btn1 = Button(self.master, text = "Login")
    btn1.pack()

    btn2 = Button(self.master, text = "Sign Up")
    btn2.pack()

    btn3=Button(self.master, text = "Exit")
    btn3.pack()


root = Tk()
root.title("Parent Pool")
root.geometry("500x500")
app = Application(root)
root.mainloop()

1 个答案:

答案 0 :(得分:2)

您忘了拨打create_widgets。你的def需要在课堂内缩进。

from Tkinter import *

class Application(Frame):
    """Login"""

    def __init__(self, master):
        self.master = master

    def create_widgets(self):
        btn1 = Button(self.master, text = "Login")
        btn1.pack()

        btn2 = Button(self.master, text = "Sign Up")
        btn2.pack()

        btn3=Button(self.master, text = "Exit")
        btn3.pack()

root = Tk()
root.title("Parent Pool")
root.geometry("500x500")
app = Application(root)
app.create_widgets()
root.mainloop()

顺便说一下,在创建Application实例时,您的_init_函数不会被调用。如果您想要这种行为,则需要将其命名为__init__。 (即使self.master从未运行,您的按钮仍然可以引用_init_,因为Frame.__init__在实例化期间被调用为回退,并且巧合地创建主属性)