我不确定如何提问这个问题,所以请随时要求更多信息。
看起来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