在我的可折叠窗格中无法单击控件(wxPython)

时间:2011-07-19 08:53:51

标签: python 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 个答案:

答案 0 :(得分:1)

我认为父参数不正确。 编辑此行:

subpanel = wxPanel(self, 0) 

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

它会起作用;)