0

因此,我在 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)

gui的图像,因为它是

4

1 回答 1

1

您没有提供完整的帧结构,但这应该让您走上正轨。

将最后一行更改为:

panel.SetSizerAndFit(grid)

这已经改善了情况。的容器sizer是 the panel,而它又包含在frame.

编辑

这个pastebin有完整的工作版本。它会生成此图像,然后是我对您的代码所做的关键更改:

wxPython框架截图

    #panel.CreateStatusBar()
    vSizer.Add(grid, 0, wx.ALL, 5)
    panel.SetSizerAndFit(grid)
    self.CreateStatusBar()
    self.SetInitialSize()
    self.Show(True)
于 2012-04-22T11:06:08.410 回答