所以我在wxPython中遇到了Grid和Sizer的问题,如果我包含这个表,格式化似乎有点混乱,整个窗口似乎有正确的大小,项目出现在正确的位置。
但是当包含这个表时,我猜的内部浅灰色是面板? 但由于这个暗灰色的场地,桌子下方的物品被隐藏了
删除setcolsize调用不会修复它
感谢您的回复
wx.Frame.__init__(self, parent, title=title)
panel = wx.Panel(self)
grid = wx.GridBagSizer(hgap=5, vgap=5)
# some other items comes before this
# FileGrid
fileF = wx.grid.Grid(panel)
fileF.CreateGrid(2,3)
fileF.SetColLabelSize(0)
fileF.SetRowLabelSize(0)
fileF.SetCellValue(0, 0, "Old")
fileF.SetCellValue(0, 1, "New")
fileF.SetCellValue(0, 2, "Update?")
grid.Add(fileF, pos=(5,0))
# FileGrid end
runBtn = wx.Button(panel, wx.ID_APPLY, "Apply")
self.Bind(wx.EVT_BUTTON, self.applyScRen, runBtn)
grid.Add(runBtn, pos=(6,0))
self.SetSizerAndFit(grid)
答案 0 :(得分:1)
您没有提供完整的框架结构,但这可以让您走上正确的轨道。
将最后一行更改为:
panel.SetSizerAndFit(grid)
这已经改善了问题。 sizer
的容器是panel
,而frame
包含在 #panel.CreateStatusBar()
vSizer.Add(grid, 0, wx.ALL, 5)
panel.SetSizerAndFit(grid)
self.CreateStatusBar()
self.SetInitialSize()
self.Show(True)
内。
修改强>
此pastebin具有完整的工作版本。它会生成此图像,然后是对代码进行的密钥更改:
{{1}}