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


  • 相关阅读:
    The connection to adb is down, and a severe error has occured
    android 补间动画
    Android Geocoder(位置解析)
    Android服务之AIDL
    SQL语言学习-数据操纵语言
    SQL语言学习-数据定义语言
    asp.net MVC 验证注解
    django之用户表的继承
    django之ModelForm组件
    django之 基于queryset和双下划线的跨表查询
  • 原文地址:https://www.cnblogs.com/yuzhould/p/4454283.html
Copyright © 2011-2022 走看看