Python 类应用程序(框架):如何工作?

Python 类应用程序(框架):如何工作?,python,tkinter,Python,Tkinter,我有个问题。我认为类可以基于对象或以前定义的类。当我将其更改为类应用程序(对象)时:它不工作。你能告诉我为什么它不工作,为什么下面的代码工作,或者为什么类应用程序(框架)工作吗?框架不是以前定义的对象,也不是对象。对不起我的英语。这是我的密码: # Lazy Buttons # Demonstrates using a class with tkinter from tkinter import * class Application(Frame): # """ A GUI appl

我有个问题。我认为类可以基于对象或以前定义的类。当我将其更改为类应用程序(对象)时:它不工作。你能告诉我为什么它不工作,为什么下面的代码工作,或者为什么类应用程序(框架)工作吗?框架不是以前定义的对象,也不是对象。对不起我的英语。这是我的密码:

# Lazy Buttons
# Demonstrates using a class with tkinter

from tkinter import *

class Application(Frame): #
    """ A GUI application with three buttons. """
    def __init__(self, master):
        super(Application, self).__init__(master)
        self.grid()
        self.create_widgets()

    def create_widgets(self):
        """  Create three buttons that do nothing. """
        # create the first Button
        self.bttn1 = Button(self, text= "I do nothing.")
        self.bttn1.grid()

        # create second button
        self.bttn2 = Button(self)
        self.bttn2.grid()
        self.bttn2.configure(text="Me too!")

        # create third button
        self.bttn3 = Button(self)
        self.bttn3.grid()
        self.bttn3["text"] = "Same here!"

# main
root= Tk()
root.title("Lazy Buttons")
root.geometry("200x85")

app = Application(root)

root.mainloop()

Frame
是以前定义的类。它是您在第一行中导入的
tkinter
的一部分

您的
应用程序
类扩展了
框架
,这意味着它可以从
框架
中获取方法,并可以完成Tk框架所能做的一切,比如显示小部件。如果不扩展
,而只扩展
对象
,这将不起作用

替换…可能更清晰

from tkinter import *

import tkinter as tk

并修复对Tk类的引用(它们将成为Tk.Button、Tk.Frame和Tk.Tk)。

Frame
是以前定义的类。它是您在第一行中导入的
tkinter
的一部分

您的
应用程序
类扩展了
框架
,这意味着它可以从
框架
中获取方法,并可以完成Tk框架所能做的一切,比如显示小部件。如果不扩展
,而只扩展
对象
,这将不起作用

替换…可能更清晰

from tkinter import *

import tkinter as tk
并修复对Tk类的引用(它们将成为Tk.Button、Tk.Frame和Tk.Tk)。

@JohnCruz:另请参见@JohnCruz:另请参见