这是代码:

#!/usr/bin/python
from tkinter import *

class App:
    def _init_(self, master):

        frame = Frame(master)
        frame.pack()

    self.lbl = Label(frame, text = "Hello World!\n")
    self.lbl.pack()

    self.button = Button(frame, text="Quit", fg="red", command=frame.quit)
    self.button.pack(side=LEFT)

    self.hi_there = Button(frame, text="Say hi!", command=self.say_hi)
    self.hi_there.pack(side=LEFT)

    def say_hi(self):
        print("Hello!")

    root = Tk()
    root.title("Hai")
    root.geometry("200x85")
    app = App(root)
    root.mainloop()

在这里,错误:

Traceback (most recent call last):
  File "F:/HTML/HTMLtests/python/hellotkinter2.py", line 4, in <module>
    class App:
  File "F:/HTML/HTMLtests/python/hellotkinter2.py", line 10, in App
    self.lbl = Label(frame, text = "Hello World!\n")
NameError: name 'frame' is not defined

找不到错误的地方! 感谢任何帮助!

===============>>#1 票数:4

这里有很多错误:

  1. __init__ ,而不是_init_
  2. 您应该了解类成员变量(未在__init__设置)和实例成员变量(在__init__设置)之间的区别。 您使用self完全错误。
  3. 您的班级似乎以递归方式实例化了自己?
  4. 您应该分开关注,而不是拥有一个庞大的无形课程来完成整个任务。

您的错误是由于2引起的,但是直到您查看1和3才能完全解决。

===============>>#2 票数:1

缩进和大写带有一些下划线。 以下作品。

#!/usr/bin/python
from Tkinter import *

class App(object):
    def __init__(self, master):
        frame = Frame(master)
        frame.pack()

        self.lbl = Label(frame, text = "Hello World!\n")
        self.lbl.pack()

        self.button = Button(frame, text="Quit", fg="red", command=frame.quit)
        self.button.pack(side=LEFT)

        self.hi_there = Button(frame, text="Say hi!", command=self.say_hi)
        self.hi_there.pack(side=LEFT)

    def say_hi(self):
        print("Hello!")

root = Tk()
root.title("Hai")
root.geometry("200x85")
app = App(root)
root.mainloop()

  ask by Jacs translate from so

未解决问题?本站智能推荐: