我不確定如何問這個問題,所以請隨時索取更多信息。如何確保QTableView中的列被調整到最大值
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
如果有人想明白我在說什麼,只是
download
這個例子。你會看到單擊PushButton會生成一個沒有正確調整大小的數據。
更新3
可能是一個錯誤:https://bugreports.qt.io/browse/QTBUG-9352
我也有這個問題。只有可見的行才能調整大小。你有沒有找到解決這個問題的方法? – ComputerEngineer88 2012-08-14 16:34:00