zoukankan      html  css  js  c++  java
  • void QTableView::setColumnWidth ( int column, int width),隐藏列不起作用

    在项目中遇到了这样的问题,是在使用过滤模型的时候。。



    在更新模型的时候,

    当过滤模型删除重新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);


  • 相关阅读:
    Windows平板优化设置
    MAC OS UI设计
    使用bat/vbs/ahk对Windows下进行自动化操作
    C#在高性能计算领域为什么性能却如此不尽人意
    自定义多重搜索
    CF797E Array Queries
    标记永久化学习笔记
    P7200 [COCI2019-2020#1] Lutrija
    P1075 [NOIP2012 普及组] 质因数分解
    基础数论重学笔记
  • 原文地址:https://www.cnblogs.com/yuzhould/p/4454939.html
Copyright © 2011-2022 走看看