我正在构建一个小型 wxPython 应用程序,其作用是在 wxGrid 中显示 Clearquest 信息。网格的父级是一个面板,面板的父级是一个笔记本。每次单击按钮时,我都会创建一个新页面,获取我的信息并显示它们。到现在为止还挺好。
我的问题是,当我滚动到网格底部时,有一个我想去掉的水平空白区域。谁能告诉我是否有办法删除它?
这是一张有助于理解我的问题的图片。我想摆脱红色矩形中的空白。
编辑:如下所示,这里有一些关于如何定义尺寸器的精度:如您所见,窗口分为两部分: - 左侧部分专用于笔记本。笔记本的每个选项卡都是一个面板,其中 wx.Grid 用于显示我的数据 - 右侧部分专用于触发数据检索的按钮(它是一个静态框)。
首先,我声明了设置面板的框架,该面板将包含笔记本和按钮的静态框(我只显示一个按钮的代码,其他按钮无关紧要):
class MainFrame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, parent=None, title='ClearQuest Python Edition')
self.queryHandler = CQHandler.QueryHandler()
panel = wx.Panel(self)
queryButtonsBox = wx.StaticBox(panel, -1, 'Run queries')
queryButtonsSizer = wx.StaticBoxSizer(queryButtonsBox, wx.VERTICAL)
queryButtonDAS = wx.Button(panel, label="DAS", name="1")
queryButtonsSizer.Add(queryButtonDAS, flag=wx.TOP | wx.EXPAND, border = 5)
queryButtonDAS.Bind(wx.EVT_BUTTON, self.QueryButtonClick)
self.noteBook = MyNoteBook(panel)
HBox = wx.BoxSizer(wx.HORIZONTAL)
HBox.Add(self.noteBook, 1, wx.EXPAND, 0)
HBox.Add(queryButtonsSizer, 0, wx.ALL, 5)
panel.SetSizer(HBox)
以下是笔记本和笔记本的每个选项卡的声明和调用方式:
class MyNoteBook(wx.Notebook):
def __init__(self, parent):
wx.Notebook.__init__(self, parent, id=wx.ID_ANY, style=wx.BK_DEFAULT)
def AddQueryPanel(self, title):
newTab = TabPanel(self)
self.AddPage(newTab, title, True)
self.CurrentPage.dataGrid.ForceRefresh()
class TabPanel(wx.Panel):
def __init__(self, parent):
wx.Panel.__init__(self, parent=parent, id=wx.ID_ANY)
self.dataGrid = MainGrid(self)
horizontalSizer = wx.BoxSizer(wx.HORIZONTAL)
horizontalSizer.Add(self.dataGrid, 1, wx.EXPAND | wx.ALL, 0)
self.SetSizer(horizontalSizer)
最后,我的 MainGrid 的一个小样本,如果有帮助的话:
class MainGrid(GridLib.Grid):
def __init__(self, parent):
self.queryHandler = CQHandler.QueryHandler()
self.GetQueryInfo()
self.style = GUI.Style.StyleHandler()
GridLib.Grid.__init__(self, parent)
self.SetGridLineColour("black")
self.SetRowLabelSize(25)
self.SetDefaultRowSize(20)
self.CreateGrid(self.numberOfRows, self.NumberOfColumns)
self.ConfigureEvents()
for i in range(self.NumberOfColumns):
self.SetColLabelValue(i, self.Headers[i])
self.EnableEditing(False)
self.CRList = self.queryHandler.GetCRList()
self.DisplayCR()