我在wx.textctrl中添加了style=wx.te_Multiline,但滚动条不工作
我希望我的文本框在我写内容的时候能够出现一个垂直滚动条。
我现在的代码是:
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
我得到了一个滚动条,但它对鼠标点击没有反应。我哪里做错了呢?
1 个回答
2
这三个按钮是self.panel
的子元素,self.panel
就像是一个在你的窗口里待着的东西,负责处理你的鼠标事件。如果你允许调整窗口大小,你会发现面板并不会和按钮一起变大,但你还是可以点击超出面板的文本框部分。
你可以选择完全去掉这个面板,让所有东西都直接放在窗口里,或者把gs
设为面板的布局管理器,然后把面板放到你的主布局管理器里,替代gs
:
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