Как растянуть столбцы в qtableView чтобы они заняли все поле виджета вне зависимости от контекста

Как растянуть столбцы в qtableView чтобы они заняли все поле виджета вне зависимости от контекста?

Еще охота автоматическое выравнивание при перемотки.

Версия qt 4.7.8


Ответы (2 шт):

Автор решения: Alexander Chernin

Для Qt5+ воспользуйтесь методом QHeaderView::setSectionResizeMode() с аргументом растяжки QHeaderView::Stretch:

qtableView->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);

Для старых версий QHeaderView::setResizeMode(QHeaderView::Stretch);

→ Ссылка
Автор решения: Sergey Tatarincev
ui->table->horizontalHeader()->setStretchLastSection(true); // растянуть последнюю секцию (это свойство можно задать и просто в дизайнере)
ui->table->horizontalHeader()->setSectionResizeMode(2, QHeaderView::Stretch); // растянуть конкретную секцию

также можно растянуть и последнюю запись вертикально:

ui->table->verticalHeader()->setStretchLastSection(true);  

при этом растяжение конкретной секции можно устанавливать только после того как таблица заполнена данными (иначе у нее будет отсутствовать horizontalHeader что приведет к исключению)

→ Ссылка