了解Tkinter.Frame

时间:2019-07-19 11:22:31

标签: python tkinter

我在分析这些代码行时遇到问题,如果您想查看整个代码,可以将其发布。

你们能解释一下这是怎么回事吗?

我打算用tkinter和sqlite创建一个数据库程序,我有一台Windows PC。

我没有写我只是想学习的代码。

class meh(Tkinter.Frame):

    def __init__(self, parent):
        Tkinter.Frame.__init__(self, parent)
        self.parent=parent
        self.initialize_user_interface()

这是怎么回事?

def __init__(self, parent):
        Tkinter.Frame.__init__(self, parent)

1 个答案:

答案 0 :(得分:0)

Python支持object-oriented编程。 OOP的核心概念之一是继承,这意味着一个类可以“继承”另一个类的方法。例如

class Animal:
    def __init__(self, name):  # The __init__ function is called when an object is
        self.name = name       # instantiated. That's called a "constructor"
        print('Created ' + name)
    def make_sound(self):
        print("...")
    def die(self):
        print(self.name + ' died.')


class Cat(Animal):          # The class in the parenthesis is the superclass.
    def make_sound(self):   # A cat makes a different sound from any other animal,
        print("Meow")       # so we give it its own make_sound method. But it dies
                            # the same as any other animal, so it will inherit
                            # the die method from the superclass.

现在,当我们尝试此代码时:

>>> fluffy = Animal('Fluffy')
Created Fluffy
>>> fluffy.make_sound()
...
>>> fluffy.die()
Fluffy died.

>>> kitty = Cat("Kitty")
Created Kitty
>>> kitty.make_sound()
Meow
>>> kitty.die()
Kitty died.

现在,让我们看看您提供的代码:

class meh(Tkinter.Frame):

此行创建一个从Tkinter.Frame继承的类。这意味着它应该能够执行Frame可以做的任何事情,这很可能就像包含UI元素一样。

def __init__(self, parent):

这是一个构造函数,在您创建新的meh时会被调用。它以parent作为参数。我会检查文档,但是在UI开发中,这通常意味着应该在其中显示的界面元素。例如,父级可能是窗口或其他框架。

Tkinter.Frame.__init__(self, parent)

这正在调用类__init__的{​​{1}}方法。这基本上意味着,他们在定义Tkinter.Frame 中没有定义要做的事情而不是Tkinter.Frame在其构造函数中做的事情。