【问题标题】:wxpython not showing the entire gridwxpython没有显示整个网格
【发布时间】:2013-09-13 06:22:29
【问题描述】:

我有一个 wxpython csv 阅读器。我在网格上显示结果。网格将占据我屏幕的一半左右。我想一次显示 100 行。我指定有 100 行,但我无法滚动到底部的 50。我已经通过写入我看不到的行然后复制整个列并粘贴到 excel 中证明了这些行。我期望看到的是一个允许我滚动到底部 50 的滚动条。我允许编辑列的大小。当我增加列的高度时,会出现滚动条,但仍然只允许我查看前 50 列。 (如果用户使列高比正常值大一英寸,我的滚动增加一英寸)我最好的猜测是我启动/获得大小调整器、面板和网格组合的最佳大小的方式有问题。我已经删除了不需要的代码,但布局面板和框是我的整体/主面板和框。

import wx.grid as grd
import wx
self.layoutPanel = wx.Panel(self)
self.layoutBox = wx.BoxSizer(wx.VERTICAL)
self.previewPanel = wx.Panel(self.layoutPanel)
self.previewBox = wx.BoxSizer(wx.VERTICAL)
self.resultGrid = grd.Grid.__init__(self, self.previewPanel,0)
self.resultGrid.CreateGrid(105,20)
self.previewBox.Add(self.resultGrid,0, wx.GROW)
self.resultGrid.SetSize(self.resultGrid.GetBestSize())
self.previewPanel.SetSizer(self.previewBox)
self.layoutBox.Add(self.previewPanel,0, wx.ALL)
self.layoutPanel.SetSizerAndFit(self.layoutBox)    
self.layoutPanel.Layout()

【问题讨论】:

  • 我没有看到对 CreateGrid 的调用,您实际上告诉网格应该有多少列和行。如果你不这样做,那么你应该在虚拟模式下使用小部件。
  • 是的,我忘记将代码添加到示例中,但我的原始代码中确实有。我必须更改其中一些行以了解我要完成的工作,因为我将这段代码分解到不同的地方。

标签: grid wxpython


【解决方案1】:

问题出在某个地方,因为有 2 个面板彼此并排。这通常是“可以”做的,但网格有点复杂。我完全摆脱了 previewPanel 和 previewBox 并解决了问题。然而,另一个问题是 FIT。合身使面板尽可能小,这不是我想要的。在未显示的代码中,我发生了重新调整大小,当我这样做时,我设置了 setSizeAndFit,它把滚动条拿走了。我将其更改为 setSize 并且滚动条保持不变。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-03
    • 1970-01-01
    • 2016-11-16
    • 1970-01-01
    相关资源
    最近更新 更多