wxPython中的Grid和Sizer

时间:2012-04-22 10:22:06

标签: python user-interface wxpython

所以我在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)

Image of the gui as it is

1 个答案:

答案 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具有完整的工作版本。它会生成此图像,然后是对代码进行的密钥更改:

screenshot of wxPython frame

{{1}}