-1
我正在製作一個程序,用於導入一個類(它繼承自Tkinter Frame小部件)的自定義小部件。這一切都很好,直到我有約束力。爲了減少混淆,我們將調用主應用程序應用程序,它是從lib導入小部件的模塊,並且將導入到應用程序中的小部件稱爲cwid。需要Python中的類的幫助
基本上我需要以某種方式在app中引用一個函數,以便它可以綁定到lib中的我的小部件。
功能我想CWID內的部件結合是element_click(功能element_click在app):
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。
此外,所有上述代碼位都是片段。
編輯:
試圖LOC-app.EOG(),並轉到以下錯誤:
AttributeError: EOG instance has no attribute '__nonzero__'
謝謝,仍然有點麻煩。請參閱編輯: – rectangletangle 2011-02-24 02:14:35
在哪一行上?我認爲你需要更多的上下文。作爲背景,['__nonzero__'](http://docs.python.org/reference/datamodel.html#object.__nonzero__)是一種用於將對象轉換爲布爾值的特殊方法。 – 2011-02-24 02:20:28
對不起,在我的代碼中發現了錯誤。無論如何,感謝您的幫助。 – rectangletangle 2011-02-24 02:35:14