Вы можете использовать метод setFixedHeight, сложная часть которого заключается в том, как рассчитать правильную высоту.
Есть пара вещей, которые сильно влияют на желаемую высоту - кроме количества строк.
a) Отображается или нет горизонтальный заголовок
б) Являются ли строки одинаковыми по высоте.
Давайте предположим, что это видно, и что строки имеют одинаковую высоту. Таким образом, желаемая высота будет - высота заголовка + обычно строка * число или ряды, а также пара изображений для интервала границы.
MyTableView->horizontalHeader()->height() + _NumberOfRows * MyTableView->rowHeight(0) + 2
Теперь, если заголовок не виден - что мы можем проверить, вызвав HorizontalHeader () -> isVisible, тогда, очевидно, мы можем оставить его высоту.
Если наши строки имеют неодинаковую высоту, то мы не можем просто рассчитать ее, нам придется пройти через все эти циклы и получить каждую из их высот отдельно.
Затем, как я уже говорил, вызовите setFixedHeight, и все готово. За исключением любых странных стилей или подобных вещей, это должно охватывать все.
Удачи.