Код: Выделить всё
tableWidget->setMaximumHeight(tableWidget->horizontalHeader()->height()
+ tableWidget->rowHeight(0) * 4
+ 4);

Но дополнительные 4 пикселя, похоже, зависят от стиля, если использовать Fusion style я получаю немного больше места, чем мне нужно (см. последнюю строку, там есть 2 ненужных белых пикселя):
Есть ли способ рассчитать точный необходимый размер независимо от стиля или лучше с его учетом?
Обновление 2024-08: Использование приведенного ниже решения (с учетом высоты области просмотра) больше не работает со всеми стилями, использующими Qt 6/Plasma 6.Подход для расчета количества пикселей, необходимых в дополнение к высоте строк и высоте заголовка, заключался в том, чтобы взять высоту виджета — высоту области просмотра — высоту заголовка.
Это все еще работает. для Fusion, где, например. высота виджета — 480 пикселей, высота области просмотра — 456, а заголовок — 22, в результате чего мне нужны 2 пикселя:

Но при использовании Breeze высоты другие: 480 пикселей для виджета, 450 для области просмотра и 30 для области просмотра. заголовок, в результате чего получается 0 (а нам понадобится 4 пикселя). Таким образом, при использовании Breeze я снова получаю полосы прокрутки:

Есть ли, например, какое-то значение метрики пикселей, из которого я могу получить необходимые пиксели?
Подробнее здесь: https://stackoverflow.com/questions/633 ... ablewidget