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


  • 相关阅读:
    JavaScript语言基础
    IP地址分类及CIDR划分方法
    Python静态方法实现单实例模式
    【转载】http和socket之长连接和短连接
    DDoS攻击
    Vue自定义过滤器
    解决跨域问题
    微信菜单创建
    canvas标签(1)--线条、矩形、圆形、文本、阴影、抛小球
    Bootstrap CSS概览代码文字标注篇
  • 原文地址:https://www.cnblogs.com/yuzhould/p/4454939.html
Copyright © 2011-2022 走看看