python - wx.grid.Grid 在 wx.BoxSizer 中使用了太多空间
问题描述
我正在尝试使用 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)
它根本没有显示 到 TextCtrl@size1 的链接
如果我将大小设置为 0,我可以让它显示出来。
self.outputPanel.Add(self.outputText, 0, wx.EXPAND)
但是,实在是太小了。我希望它在桌子上的高度相同。链接到 TextCtrl@size0
解决方案
因此,在阅读了更多 wxPython 文档后,我找到了解决方案。
如果您访问此页面,他们会在其中讨论一些 wxPython 的 sizer 功能(的超类wx.BoxSizer
)。在页面上它说“通常wx.Sizers
将用于wx.Window.GetEffectiveMinSize
确定窗口项目的最小尺寸应该是多少,并将使用该尺寸来计算布局。” 所以我添加了wx.FIXED_MINSIZE
,现在网格没有最小尺寸。
这似乎是个坏主意,因为网格现在可以缩小到太小的尺寸。但是,我已经将框架最小尺寸设置得非常大,并且网格使用了一半的空间,所以我认为这不会成为问题。
推荐阅读
- javascript - 将重节点放在可视化中心,将轻节点放在边缘?
- reactjs - 奇怪的 UI 行为 - React native w/expo
- c# - 错误从源文件访问 XMLHttpRequest 已被 CORS 策略阻止
- c# - 如何使用 AutoMapper 从 byte[] 转换为字符串?
- android - 如何在 Raspberry Pi 上使用来自 Android 的共享库
- azure - 如何为 Iothub 内置端点触发器创建函数应用程序
- sql - 如何在没有匹配行的 SQL 中查询?
- json - 我可以在 JSON 模式模式(正则表达式)中使用 unicode 标志吗?
- google-bigquery - How to know the number of queries per user in Bigquery?
- r - 如果 R 数据框中的条件满足条件,则连续过滤行