спасибо, но для новичков и это сложно
вот, откуда взять размер строки, sizehint не хочет возвращать правильное значение.
Пока получилось так:
QScrollBar *hsb = list->horizontalScrollBar();
int bar = 10;
if (hsb->isVisible()) {
bar += hsb->height();
}
QModelIndex firstIndex = list->indexAt(QPoint(0, 0));
QModelIndex lastIndex = list->indexAt(QPoint(0, list->height() - bar));
int first = firstIndex.row();
int last = lastIndex.row();
int row_count = last-first+1;