有人可以解释使用wxPython小部件子类与super()的区别/优点吗?我正在尝试创建一个没有封闭边框矩形的切换按钮,我想使用wx.lib.statbmp模块中的GenStaticBitmap作为基类。
我正在尝试将三个位图传递给子类,但是没有成功获得任何一种方法。我不确定如何构造子类并传递参数或使用super来创建类。
(我创建的按钮超过30个,这就是我试图将控件子类化的原因)
当代码作为GenStaticBitmap放置在面板中时,代码可以正常工作 感谢您提供任何帮助或建议。
这是我尝试过的:
class MyBitmapButton(gen_statbmp.GenStaticBitmap):
""" This is the subclassed version of the GenStaticBitmap to allow embedding bitmaps in the button"""
def __init__(self, parent, off_bmp,on_bmp,hover_bmp):
gen_statbmp.GenStaticBitmap.__init__(parent,id,off_bmp)
self.bmapoff = off_bmp
self.bmapon = on_bmp
self.bmaphover= over_bmp
self.state='off'
def On_Hover(self,event):
self.SetBitmap(self.bmphover)
print 'on hover button state is',self.state
def On_Leave(self,event):
#print 'on enter button state is',self.state
if self.state=='on':
print self.state
self.SetBitmap(self.bmapon)
self.state='on'
if self.state=='off':
self.SetBitmap(self.bmapoff)
self.state='off'
print 'on leave button state is',self.state
def On_Click(self,event):
#print 'on enter button state is',self.state
if self.state=='on':
print self.bmapbtn.state
self.SetBitmap(self.bmapoff)
self.state='off'
elif self.state=='off':
self.SetBitmap(self.bmapon)
self.state='on'
print 'on leave button state is',self.state
答案 0 :(得分:0)
wxPython档案解释了整个“超级”意识形态:
http://wxpython-users.1045709.n5.nabble.com/Super-object-usage-explanation-td3408498.html
如果您正在尝试创建自定义窗口小部件,则应该查看wx.lib窗口小部件。我认为它们都是自定义小部件。
另见: