void QTableView::setColumnWidth ( int column, int width),隱藏列不起作用

來源:互聯網
上載者:User

在項目中遇到了這樣的問題,是在使用過濾模型的時候。。

在更新模型的時候,

當過濾模型刪除重新new,而源模型沒有重新new後,使用setColumnWidth ( int column, int width),;就會不起作用。

後來我試著不再重新new過濾模型,setColumnWidth就可以使用了。

難道過濾模型和源模型一定保持相同的刪除和分配 setColumnWidth才起作用.

源模型重新寫入資料需要再次設定隱藏列,源模型的清空使用

int rowCount = m_tableModel->rowCount();

int columnCount = m_tableModel->columnCount();

for(int i = 0; i<rowCount; i++)

{

for(int j = 0; j<columnCount; j++)

{

QStandardItem *pItem = m_tableModel->item(i, j);

if(pItem)

{

delete pItem;

}

}

}

更新資料

………………

………………

………………

重新設定隱藏

m_tableModel->setColumnCount(13);

m_filterModel->setSourceModel(m_tableModel);

m_filterModel->setDynamicSortFilter(true);

m_tableModel->setHorizontalHeaderLabels(m_headerString);

m_pTableView->setModel(m_filterModel);

m_strFilter = "01234";

m_filterModel->setFilterRegExp(QRegExp(QString("[%1]").arg(m_strFilter))); //過濾的規則

m_pTableView->setColumnHidden(12, true);

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.