Grid WxPython:如何获得wx网格中显示的单元格范围?
我试图获取网格上可见行/列的范围。网格可以滚动,我想要屏幕上显示的第一行和最后一行。如果该函数可以对列执行相同的操作,那么它将是一个加号 现在我想到了这个解决方案:Grid WxPython:如何获得wx网格中显示的单元格范围?,grid,wxpython,wxwidgets,Grid,Wxpython,Wxwidgets,我试图获取网格上可见行/列的范围。网格可以滚动,我想要屏幕上显示的第一行和最后一行。如果该函数可以对列执行相同的操作,那么它将是一个加号 现在我想到了这个解决方案: def GetVisibleRowsRange(self): """ return the row number of the first and last visible rows """ r = 0; max = self.GetNumberRows() while r <
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
def GetVisibleRowsRange(自):
"""
返回第一行和最后一行的行号
"""
r=0;
max=self.GetNumberRows()
当r
这仅在第一列可见时有效
我想知道是否可以通过使用windows虚拟大小函数直接获得可见行/列的范围?我使用的是wxPerl,下面的python代码未经测试。 此方法有效,但您可能需要“”
谢谢,山姆,它工作效率更高。我在最后两次调用中添加了True作为'clipToMinMax'参数,以使其正常工作。
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)