0

誰かがwxPythonウィジェットサブクラスとsuper()を使用することの違い/利点を説明できますか?境界線の長方形を囲まずにトグルボタンを作成しようとしていますが、wx.lib.statbmpモジュールのGenStaticBitmapを基本クラスとして使用したいと思います。

3つのビットマップをサブクラスに渡そうとしていますが、どちらのアプローチも機能させることができませんでした。サブクラスを作成して引数を渡す方法や、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
4

1 に答える 1

0

wxPythonアーカイブは、「スーパー」イデオロギー全体を説明しています。

http://wxpython-users.1045709.n5.nabble.com/Super-object-usage-explanation-td3408498.html

カスタムウィジェットを作成しようとしている場合は、wx.libウィジェットを確認する必要があります。それらはすべてカスタムウィジェットだと思います。

参照:

于 2012-11-26T15:27:36.283 に答える