16,215
社区成员
发帖
与我相关
我的任务
分享
void XXX::getTableDisplayRange(int &beginRow, int &endRow) const
{
beginRow = endRow = -1;
if(tableWidget->rowCount() <= 0 || tableWidget->columnCount() <= 0) {
return;
}
bool discovered = false;
int h = tableWidget->viewport()->geometry().height();
for(int i = 0; i < tableWidget->rowCount(); ++i) {
int rh = tableWidget->rowHeight(i);
int ypos = tableWidget->rowViewportPosition(i);
if(ypos > -rh && ypos < h) {
discovered = true;
if(beginRow == -1 || beginRow > i) {
beginRow = i;
}
if(endRow == -1 || endRow < i) {
endRow = i;
}
}
else if(discovered) {
break;
}
}
}