【问题标题】:wx.grid.Grid using too much space within wx.BoxSizerwx.grid.Grid 在 wx.BoxSizer 中使用了太多空间
【发布时间】:2021-11-18 16:31:14
【问题描述】:

我正在尝试使用 wx.BoxSizer 中的 wx.grid.Grid() 在 wxpython 中显示项目表。表格很大,但我不希望它占用所有屏幕空间,所以我把它放在 boxsizer 中,如下面的代码所示。

def setOutputPanel(self):
    self.outputBox = wx.grid.Grid(parent=self.pnl)
    self.outputBox.CreateGrid(100, 100)
    self.outputBox.DisableCellEditControl()
    self.outputPanel.Add(self.outputBox, 1, wx.EXPAND)
    self.graphControl = wx.Button(parent=self.pnl, label="close")
    self.outputPanel.Add(self.graphControl, 0, wx.ALIGN_RIGHT)
    self.outputText = wx.TextCtrl(parent=self.pnl, value="text control", style=wx.EXPAND)
    self.outputPanel.Add(self.outputText, 1, wx.EXPAND)

问题是当我将 outputText 的大小设置为 1 时

self.outputPanel.Add(self.outputText, 1, wx.EXPAND)

根本不显示 link to TextCtrl@size1

如果我将大小设置为 0,我可以让它显示出来。

self.outputPanel.Add(self.outputText, 0, wx.EXPAND)

但是,它太小了。我希望它在桌子上的高度相同。 link to TextCtrl@size0

【问题讨论】:

    标签: python python-3.x wxpython


    【解决方案1】:

    所以,在阅读了更多 wxPython 文档后,我找到了解决方案。

    如果你去this page,他们会在那里讨论一些 wxPython 的 sizer 特性(wx.BoxSizer 的超类)。在页面上它说“通常wx.Sizers 将使用wx.Window.GetEffectiveMinSize 来确定窗口项的最小尺寸应该是多少,并将使用该尺寸来计算布局。”所以我添加了wx.FIXED_MINSIZE,现在网格没有最小尺寸。

    这似乎是个坏主意,因为网格现在可以缩小到太小的尺寸。但是,我已经将最小框架尺寸设置得非常大,并且网格占用了一半的空间,所以我认为这不会成为问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-05
      • 1970-01-01
      • 2020-08-13
      • 1970-01-01
      • 2014-04-13
      • 1970-01-01
      相关资源
      最近更新 更多