Как настроить таблицу QTableWidget по ширине?
Примечание ( само окно фиксировано в размере).
Имеется таблица в таком виде сейчас:

Стоит растяжение последней ячейки, но как видите, если текста там много, то он обрезается и его никак не просмотреть. Если убрать растяжение и поставить, например :
ui->tableWidget->horizontalHeader()->setSectionResizeMode(6,QHeaderView::ResizeToContents);
то казалось, бы всё будет нормально, но при наличии в последней ячейке малого количества текста это выглядит убого: (таблица обрезана).

В общем, подскажите, пожалуйста, как можно настроить ее так, чтобы всё отображалось красиво?
Ответы (3 шт):
stretchLastSection : bool
Это свойство указывает, занимает ли последний видимый раздел в заголовке все доступное пространство.
Больше https://doc.qt.io/qt-5/qheaderview.html#stretchLastSection-prop
У вас задается подгон по содержимому. для растяжения на все доступное пространство (так можно растянуть не только последний столбец):
ui->tableWidget->horizontalHeader()->setSectionResizeMode(6, QHeaderView::Stretch);
Более подробно о возможных см описание enum QHeaderView::ResizeMode в документации: https://doc.qt.io/qt-5/qheaderview.html#ResizeMode-enum
Если столбец последний, то как и советуют в предыдущем ответе:
ui->tableWidget->horizontalHeader()->setStretchLastSection(true);
После заполнения таблицы можно найти самый длинный текст и подстроить минимальную ширину секции под его длину:
QString s = "САМАЯ ДЛИННАЯ СТРОКА"; // нам понадобится текст самой длинной строки
QFontMetrics m(this->font()); // и метрики шрифта
QRect textRect = m.boundingRect(QRect(0,0,0,0),Qt::TextWordWrap,s); // Найдем геометрические параметры текста (высота/ширина в пикселях) с учетом перевода строк
ui->tableWidget->horizontalHeader()->setMinimumWidth(textRect.width()); // Теперь можно установить минимальную ширину
При установленом StretchLastSection, подогнать ширину под содержимое можно двойным кликом тут:
