Я не знаю, как спросить об этом, поэтому не стесняйтесь спрашивать дополнительную информацию.
Похоже, что tableView->resizeColumnsToContents()
изменит размер только всех столбцов на основе данных в текущем представлении. Это означает, что если у меня будет больше данных ниже (что больше по количеству слов), эти слова будут упакованы (если для свойства wordWrap
установлено значение true).
Странная вещь, если я прокручиваю вниз и обновляю данные, tableView
будет корректно изменять размер этих столбцов. Похоже, что tableView
не знал, что ниже приведен более длинный текст.
Итак, мой вопрос: как я могу убедиться, что размер этих столбцов максимально увеличен на основе всех данных?
Мои коды
QSqlTableModel *model = new QSqlTableModel;
model->setTable("item");
model->setEditStrategy(QSqlTableModel::OnManualSubmit);
model->select();
tableResult->setModel(model);
tableResult->setEditTriggers(QAbstractItemView::NoEditTriggers);
tableResult->setSelectionBehavior(QAbstractItemView::SelectRows);
tableResult->setSelectionMode(QAbstractItemView::SingleSelection);
tableResult->resizeColumnsToContents();
tableResult->resizeRowsToContents();
Обновление 1
Я пробовал tableResult->scrollToBottom()
, и он будет изменять размер только на основе предметов внизу. Поэтому, если в середине есть более длинные слова, эти слова будут обернуты.
Обновление 2
Если кто-то захочет понять, о чем я говорю, просто загрузите в этом примере. Вы увидите, что нажатие на кнопку будет генерировать данные, размер которых не корректно изменяется.
Обновление 3
Возможно, ошибка: https://bugreports.qt.io/browse/QTBUG-9352