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);


  • 相关阅读:
    [Redis]在.NET平台下的具体应用
    [Redis]在Windows下的下载及安装
    【重读MSDN之ADO.NET】ADO.NET连接
    贪心
    树状数组
    并查集
    模拟
    kruskal
    树链剖分
    匈牙利算法
  • 原文地址:https://www.cnblogs.com/yuzhould/p/4454283.html
Copyright © 2011-2022 走看看