尝试执行时,tkinter小部件不显示

时间:2018-06-17 04:48:45

标签: python tkinter

我正在尝试练习我的tkinter编码,我有一本书里面有一个例子,但是示例没有显示小部件,请你分享或让我知道我遗漏了什么,我输入了它完全和书中一样,但是我看不到缺少的东西,框架窗口里面什么也没显示出来?

from tkinter import *

root = Tk()


class Application(Frame):
    def __init__(self, master):
        super(Application, self)._init_(master)
        self.grid()
        self.create_widgets()

    def create_widgets(self):
        Label(self, text="choose your movie").grid(row=0, column=0, sticky=W)
        Label(self, text="make selection").grid(row=0, column=0, sticky=W)
        self.likes_comedy = BooleanVar()
        Checkbutton(self, text="comedy", variable=self.likes_comedy, command=sefl.update_text).grid(row=0, column=0,
                                                                                                    sticky=W)
        self.likes_drama = BooleanVar()
        Checkbutton(self, text="drama", variable=self.likes_drama, command=self.update_text).grida(row=0, column=0,
                                                                                                   sticky=W)
        self.likes_romance = BooleanVar()
        Checkbutton(self, text="romance", variable=self.likes_romance, command=self.update_text).grid(row=4, column=0,
                                                                                                      sticky=W)
        self.results_txt = Text(self, width=40, height=5, wrap=WORD)
        self.results_txt.grid(row=5, column=0, columnspan=3)

    def update_text(self):
        likes = ""
        if self.likes_comedy.get():
            likes += "you enjoy comedy.\n"
        if self.likes_drama.get():
            likes += "you maybe like drama.\n"
        if self.likes_romance.get():
            likes += "you like romance.\n"

        self.results_txt.delete(0.0, END)
        self.results_txt.insert(0.0, likes)


root.title("Mad Lib Assignment#2 Chapter#1")
root.geometry("600x400")
app = Frame(root)
lbl = Label(app, text="I am the label")

lbl.grid()
app.grid()
root.mainloop()

1 个答案:

答案 0 :(得分:2)

你没有在你的程序中调用Application,还有许多其他错误,包括super().__init__()中的参数,Application中的双下划线,拼写错误等...

以下调用from tkinter import * root = Tk() class Application(Frame): def __init__(self, master): self.master = master super().__init__(master) self.create_widgets() self.grid() def create_widgets(self): Label(self, text="choose your movie").grid(row=0, column=0, sticky=W) Label(self, text="make selection").grid(row=0, column=1, sticky=W) self.likes_comedy = BooleanVar() Checkbutton(self, text="comedy", variable=self.likes_comedy, command=self.update_text).grid(row=0, column=2, sticky=W) self.likes_drama = BooleanVar() Checkbutton(self, text="drama", variable=self.likes_drama, command=self.update_text).grid(row=0, column=3, sticky=W) self.likes_romance = BooleanVar() Checkbutton(self, text="romance", variable=self.likes_romance, command=self.update_text).grid(row=4, column=0, sticky=W) self.results_txt = Text(self, width=40, height=5, wrap=WORD) self.results_txt.grid(row=5, column=0, columnspan=3) def update_text(self): likes = "" if self.likes_comedy.get(): likes += "you enjoy comedy.\n" if self.likes_drama.get(): likes += "you maybe like drama.\n" if self.likes_romance.get(): likes += "you like romance.\n" self.results_txt.delete(0.0, END) self.results_txt.insert(0.0, likes) if __name__ == '__main__': root.title("Mad Lib Assignment#2 Chapter#1") root.geometry("600x400") app = Application(root) lbl = Label(app, text="I am the label") lbl.grid() app.grid() root.mainloop() ,显示小部件,并且不会抛出错误。

     {
   "Version": "2012-10-17",
   "Statement": [
      {
         "Sid": "Example permissions",
         "Effect": "Allow",
         "Principal": {
            "AWS": "arn:aws:iam::AccountB-ID:root"
         },
         "Action": [
            "s3:PutObject"    
         ],
         "Resource": [
            "arn:aws:s3:::examplebucket"
         ]
      }
   ]
}