wxPythonツールキットのCollapsiblePaneコンポーネントを使用しようとしました。パネルに2つのチェックボックスを直接追加し、パネルに配置されたCollapsiblePaneの下に2つのチェックボックスを追加します。私の問題は、折りたたみ可能なペインとその下のコンポーネントがマウスイベントに反応しないことです。つまり、ペインを展開/折りたたんだり、CollapsiblePaneの下のコンポーネントとやり取りできません。CollapsiblePaneはマウスでは展開/折りたたみしません。
以下はサンプルコードです。 collapsiblePaneの下のチェックボックスを切り替えしようと、彼らはあなたがself.panelオブジェクトを作成したが、あなたのフレームの子としてあなたの折りたたみ可能なペインを作成し
import wx
import sys
class MyFrame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None, -1, "My Frame") # , size=(300,300)
self.panel = wx.Panel(self)
sizer = wx.FlexGridSizer(rows=2, cols=2, hgap=5, vgap=5)
CB1 = wx.CheckBox(self.panel, -1, "dene-1")
CB2 = wx.CheckBox(self.panel, -1, "dene-2")
CP = wx.CollapsiblePane(self, -1, label="TITLE", style=wx.CP_DEFAULT_STYLE|wx.CP_NO_TLW_RESIZE)
self.Bind(wx.EVT_COLLAPSIBLEPANE_CHANGED, self.OnPaneChanged, CP)
win = CP.GetPane()
pansizer = wx.BoxSizer(wx.VERTICAL)
cb1 = wx.CheckBox(win, -1, "enable 1")
cb2 = wx.CheckBox(win, -1, "enable 2")
pansizer.Add(cb1, 0, wx.GROW | wx.ALL )
pansizer.Add(cb2, 0, wx.GROW | wx.ALL)
win.SetSizer(pansizer)
pansizer.SetSizeHints(win)
CP.Expand()
sizer.Add(CB1, 0, wx.ALL)
sizer.Add(CB2, 0, wx.ALL)
sizer.Add(CP, 0, wx.RIGHT|wx.LEFT|wx.EXPAND, 5)
self.panel.SetSizer(sizer)
self.panel.Fit()
def OnPaneChanged(self, evt):
# redo the layout
self.Layout()
if __name__=="__main__":
app = wx.App()
frame = MyFrame()
frame.Show(True)
app.MainLoop()