我希望我的TextCtrl字段能够在我写出事件时获得垂直滚动。
到目前为止我的代码是;
sizer = wx.BoxSizer(wx.VERTICAL) #Create a vertical sizer
#Create our multiline console area
self.term = wx.TextCtrl(self, -1, '', style=wx.TE_MULTILINE)
#Add our console to the sizer
sizer.Add(self.term, 5, wx.EXPAND | wx.TOP | wx.BOTTOM, 0)
gs = wx.GridSizer(1, 3, 0, 0) #Define the grid layout in rows, columns
gs.AddMany([
(wx.Button(self.panel, 3, 'Browse'), 0, wx.EXPAND),
(wx.Button(self.panel, 1, 'RUN'), 0, wx.EXPAND),
(wx.Button(self.panel, 2, 'QUIT'), 0, wx.EXPAND) ])
#Add our defined grid layout above to our sizer
sizer.Add(gs, 1, wx.EXPAND)
self.SetSizer(sizer) #Pass & show our sizer
我得到了一个scoll bar,但它没有响应鼠标点击。我做错了什么?
答案 0 :(得分:2)
这三个按钮是self.panel
的孩子,只是挂在你的框架中,拦截你的鼠标事件。如果允许调整大小,您将看到面板没有与按钮一起调整大小,但您可以单击TextCtrl中超出它的部分。
您可以完全摆脱面板并使所有内容成为框架的子项,或者使gs
成为面板的sizer,并将面板添加到主sizer中以代替gs
:< / p>
sizer.Add(self.term, 5, wx.EXPAND | wx.TOP | wx.BOTTOM, 0)
gs = wx.GridSizer(1, 3, 0, 0) #Define the grid layout in rows, columns
gs.AddMany([
(wx.Button(self.panel, 3, 'Browse'), 0, wx.EXPAND),
(wx.Button(self.panel, 1, 'RUN'), 0, wx.EXPAND),
(wx.Button(self.panel, 2, 'QUIT'), 0, wx.EXPAND) ])
self.panel.SetSizer(gs)
sizer.Add(self.panel, 1, wx.EXPAND) #Add our defined grid layout above to our sizer