【发布时间】:2011-02-24 02:04:54
【问题描述】:
我正在制作一个程序来导入一个自定义小部件,它是一个类(它继承自 Tkinter Frame 小部件)。在我开始绑定之前,这一切都很好。为了减少混淆,我们将调用主应用程序应用程序,它从 lib 中导入小部件的模块,并且正在导入到应用程序中的小部件将被称为 cwid。
基本上我需要以某种方式在应用程序中引用一个函数,以便它可以绑定到我在 lib 中的小部件。
我试图将 cwid 中的小部件绑定到的函数是 element_click(函数 element_click 在应用程序中。):
lambda event: element_click(event, elementinfo[3])
所以绑定在 lib 中看起来像这样(元素是 cwid 中的画布小部件)
element.bind('<ButtonRelease-1>', lambda event: element_click(event, elementinfo[3]))
上面的行不起作用,但是看到 element_click 在应用程序中。所以我尝试了一个似乎不起作用的解决方法。
import app
loc = app.EOG
element.bind('<ButtonRelease-1>', lambda event: loc.element_click( event, elementinfo[3]))
当我尝试上述方法时,我收到以下错误:
TypeError: unbound method element_click() must be called with EOG instance as first argument (got Event instance instead)
EOG 是应用程序中的一个类,其中包含 element_click。
此外,以上所有代码位都是sn-ps。
编辑:
尝试了loc = app.EOG(),出现如下错误:
AttributeError: EOG instance has no attribute '__nonzero__'
【问题讨论】:
标签: python class module import tkinter