2011-07-19 17 views
1

折りたたみ可能な枠に問題があります。展開/折りたたみ機能は機能します。しかし、私は拡大ボタンやテキストフィールドをクリックすることはできません。ペインは自分のコンテンツを表示しますが、クリックできません。折りたたみパネル(wxPython)でコントロールをクリックできない

私は明示的な位置座標を使用していますか?(ただし、目的に応じて行いました) その理由はありますか?ここで

例:(あなたが展開ボタンが表示されますが、あなたがそれらをクリックすることはできません)

from wxPython.wx import * 
from wxPython.grid import * 

class SampleCollapsiblePane(wx.CollapsiblePane): 
    def __init__(self, *args, **kwargs): 
     wx.CollapsiblePane.__init__(self,*args,**kwargs) 
     sizer = wx.BoxSizer(wx.VERTICAL) 
     subpanel = wxPanel(self, 0)   

     self.button =wx.Button(subpanel, label="Save", pos=(20, 170)) 
     self.Infotext = wx.StaticText(subpanel, -1, "this is a test", pos=(100, 174)) 
     self.Infotext.SetBackgroundColour((178,34,34)) 
     self.Infotext.SetForegroundColour((245, 245,220))  

     sizer.Add(subpanel)  

     self.GetPane().SetSizer(sizer) 
     self.Bind(wx.EVT_COLLAPSIBLEPANE_CHANGED, self.on_change) 

    def on_change(self, event): 
     self.GetParent().Layout() 


class Main_Frame(wx.Frame): 
    def __init__(self, *args, **kwargs): 
     wx.Frame.__init__(self, *args, **kwargs) 
     self.main_panel = wx.Panel(self) 
     sizer = wx.BoxSizer(wx.VERTICAL) 

     sizer.Add(SampleCollapsiblePane(self.main_panel, label = str("Configurations")), 0,) 
     sizer.Add(wx.Button(self.main_panel, label = str("the end"))) 

     self.main_panel.SetSizer(sizer) 


class SampleApp(wx.App): 
    def OnInit(self): 
     frame = Main_Frame(None, title = "Sample App") 
     frame.Show(True) 
     frame.Centre() 
     return True 

def main(): 
    app = SampleApp(0) 
    app.MainLoop() 

if __name__ == "__main__": 
    main() 

答えて

1

私は親のパラメータが間違っていると思います。 ;)

subpanel = wxPanel(self.GetPane(), 0) 

、それが動作しますで

subpanel = wxPanel(self, 0) 

:このライン 編集

関連する問題