我不知道如何问这个,所以,请随时询问更多信息。
似乎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