Я не уверен, как спросить об этом, поэтому не стесняйтесь запрашивать дополнительную информацию.
Кажется, что 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
Если кто-то хочет понять, о чем я говорю, просто скачать этот пример. Вы увидите, что нажатие кнопки PushButton создаст данные, которые не будут правильно изменены.
Обновление 3
Возможно, ошибка: https://bugreports.qt.io/browse/QTBUG-9352