grid - WxPython:如何获取wx网格中显示单元格的范围?

标签 grid wxpython wxwidgets

我正在尝试获取网格上可见行/列的范围。网格可以滚动,我想要屏幕上第一个显示的行和最后一个显示的行。如果该函数可以对列执行相同的操作,那就更好了。

现在我想出了这个解决方案:

def GetVisibleRowsRange(self):
    """
    return the row number of the first and last visible rows
    """
    r = 0;
    max = self.GetNumberRows()
    while r < max and not self.IsVisible(row=r, col=0, wholeCellVisible=False):
        r += 1
    firstRow = r    
    while r < max and self.IsVisible(row=r, col=0, wholeCellVisible=False):
        r += 1
    lastRow = r
    return firstRow, lastRow

这仅在第一列可见时才有效。

我想知道是否可以使用Windows虚拟大小函数直接获取可见行/列的范围?

最佳答案

我正在使用wxPerl,以下Python代码未经测试。 此方法有效,但您可能需要“get a little creative using unbound methods ”。

ux, uy = self.GetScrollPixelsPerUnit()
sx, sy = self.GetViewStart()
w, h = self.GetGridWindow().GetClientSize().Get()
sx *= ux ; sy *= uy

x0 = self.XToCol(sx)
y0 = self.YToRow(sy)
x1 = self.XToCol(sx + w, True)
y1 = self.YToRow(sy + h, True)

关于grid - WxPython:如何获取wx网格中显示单元格的范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22235291/

相关文章:

twitter-bootstrap - Ionic 2 响应式网格布局,根据屏幕尺寸固定列数

python - wx.StaticBitmap 或 wx.DC : Which is better to use for constantly changing images?

python - 一个好的 wxpython GUI 构建器?

c++ - wxWidgets wxScrolledWindow 取消之前的绘制

css - 更改位置网格

javascript - jqGrid的addRowData因大量记录而挂起

wpf - 如何使用网格或其他控件在 WPF 中布局表单以实现可维护性

python - 如何居中 wx.BusyInfo() - wxpython?

c++ - 我必须声明自己的 wxFrame 类吗?

c++ - 如何在wxWidgets中刷新,C++