我已将 style=wx.te_Multiline 添加到我的 wx.textctrl 项目中,但我的滚动条不起作用



我想让我的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条,但是它对鼠标点击没有响应。我做错了什么?

这三个按钮是self.panel的子按钮,它只是挂在您的框架中,拦截您的鼠标事件。如果你允许调整大小,你会看到面板没有和按钮一起调整大小,但你可以点击TextCtrl的延伸部分。

您可以完全去掉面板,使所有内容都成为框架的子项,也可以将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

相关内容

  • 没有找到相关文章

最新更新