Python-从另一个类调用函数

拉坦迪

我刚刚开始学习Python,最近我阅读了有关使用tkinter切换窗口的教程。在本教程中,家伙从__init__使用lambda的按钮内部切换了窗口,但是我想在切换窗口之前先完成一个函数。该函数从Class内部运行WindowA,需要在class内部调用一个函数GLApp运行该函数后,如果成功,则应该将其打开WindowB

如果尝试从中的函数内部调用show_frame,则会收到此错误windowA

--controller is not defined

有人可以解释一下实际上可以从windowA函数内部调用show_frame函数背后的思考过程,我会很感激!

class GLApp(tk.Tk):

    def __init__(self, *args, **kwargs):

            self.frames = {}

        for F in (WindowA, WindowB):

            frame = F(container, self)

            self.frames[F] = frame

            frame.grid(row=0, column=0, sticky="nsew")

        def show_frame(self, cont):
            frame = self.frames[cont]
            frame.tkraise()


class windowA(tk.Frame):

    def __init__(self, parent, controller):

        tk.Frame.__init__(self,parent)

        #window styling and function calling

        self.attempt_login = tk.Button(self,text="Login",command= self.function)

        def function(self):

             try:

                trysomething

             else:

                controller.show_frame(WindowB)
布莱恩·奥克利(Bryan Oakley)

本教程没有告诉您的是,您应该保存一个controller实例,以便可以在页面类的每个函数中使用它。要查看为该教程复制的原始代码,请参阅https://stackoverflow.com/a/7557028/7432

在其中,您将看到每个页面类要做的第一件事就是保存控制器。完成后,您可以self.controller在页面类中的任何地方使用

另外,在您的代码中,您嵌套function在中__init__在这种情况下,根本没有理由这样做。将函数移出一级,并像下面这样编写:

class windowA(tk.Frame):
    def __init__(self, parent, controller):
        tk.Frame.__init__(self,parent)
        self.controller = controller
        ...

    def function(self):
         try:
            trysomething
         else:
            self.controller.show_frame(WindowB)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从Python的另一个类内部调用方法

来自分类Dev

在Python中从一个函数调用变量到另一个函数

来自分类Dev

另一个类实例的python类实例方法调用

来自分类Dev

如何在python中从另一个类调用函数?

来自分类Dev

Python:在来自另一个文件的路由内的类内调用函数

来自分类Dev

在python中另一个文件中的另一个类中调用函数

来自分类Dev

Python中的另一个类可以调用一个函数中返回的内容吗?

来自分类Dev

Python-从另一个类调用函数

来自分类Dev

在同一类中的另一个函数中调用的函数的AttributeError-Python

来自分类Dev

Python从类中的另一个函数调用一个函数

来自分类Dev

在一个类中调用一个函数,在另一个类python中调用一个函数

来自分类Dev

Python调用一个函数形成另一个函数

来自分类Dev

如何从另一个屏幕类调用Python中的函数?

来自分类Dev

AWS Lambda函数可以从python文件调用另一个普通的python函数吗?

来自分类Dev

Python从另一个文件调用函数

来自分类Dev

Python:如何从一个函数调用另一个函数的属性?

来自分类Dev

从Python的另一个类内部调用方法

来自分类Dev

从Python 2.7中的另一个类方法调用一个类方法

来自分类Dev

如何在python中从另一个类调用函数

来自分类Dev

另一个类实例的python类实例方法调用

来自分类Dev

从python中的另一个函数调用变量

来自分类Dev

在python的同一类中的另一个方法中调用一个类的方法

来自分类Dev

从另一个类的一个类调用python函数

来自分类Dev

从python中的另一个类调用变量

来自分类Dev

python - 从另一个函数调用变量

来自分类Dev

Python从另一个函数调用一个函数中的函数

来自分类Dev

在另一个函数中调用列表 - Python

来自分类Dev

Python kv文件如何从另一个类调用函数

来自分类Dev

Python:从另一个函数中调用一个函数

Related 相关文章

  1. 1

    从Python的另一个类内部调用方法

  2. 2

    在Python中从一个函数调用变量到另一个函数

  3. 3

    另一个类实例的python类实例方法调用

  4. 4

    如何在python中从另一个类调用函数?

  5. 5

    Python:在来自另一个文件的路由内的类内调用函数

  6. 6

    在python中另一个文件中的另一个类中调用函数

  7. 7

    Python中的另一个类可以调用一个函数中返回的内容吗?

  8. 8

    Python-从另一个类调用函数

  9. 9

    在同一类中的另一个函数中调用的函数的AttributeError-Python

  10. 10

    Python从类中的另一个函数调用一个函数

  11. 11

    在一个类中调用一个函数,在另一个类python中调用一个函数

  12. 12

    Python调用一个函数形成另一个函数

  13. 13

    如何从另一个屏幕类调用Python中的函数?

  14. 14

    AWS Lambda函数可以从python文件调用另一个普通的python函数吗?

  15. 15

    Python从另一个文件调用函数

  16. 16

    Python:如何从一个函数调用另一个函数的属性?

  17. 17

    从Python的另一个类内部调用方法

  18. 18

    从Python 2.7中的另一个类方法调用一个类方法

  19. 19

    如何在python中从另一个类调用函数

  20. 20

    另一个类实例的python类实例方法调用

  21. 21

    从python中的另一个函数调用变量

  22. 22

    在python的同一类中的另一个方法中调用一个类的方法

  23. 23

    从另一个类的一个类调用python函数

  24. 24

    从python中的另一个类调用变量

  25. 25

    python - 从另一个函数调用变量

  26. 26

    Python从另一个函数调用一个函数中的函数

  27. 27

    在另一个函数中调用列表 - Python

  28. 28

    Python kv文件如何从另一个类调用函数

  29. 29

    Python:从另一个函数中调用一个函数

热门标签

归档