找回密码
 立即注册
收起左侧

qt comboBox QStandardItemModel

2
回复
8502
查看
[复制链接]
累计签到:3 天
连续签到:1 天
来源: 2017-2-21 20:25:28 显示全部楼层 |阅读模式
1Qter豆
QStandardItemModel  什么情况下长时间下拉会出现内存泄漏

回复

使用道具 举报

累计签到:25 天
连续签到:1 天
2017-2-21 23:06:39 显示全部楼层
你是怎么知道的?将问题和问题代码贴出!
回复

使用道具 举报

累计签到:3 天
连续签到:1 天
2017-2-22 09:27:15 显示全部楼层
QAbstractItemModel * old_model = ui->comboBox->model();
    if (old_model)
    {   
        old_model->deleteLater();
    }
    QStandardItemModel *model = new QStandardItemModel(this);
    QStandardItem *item = new QStandardItem(QString(" 请选择灭火装置..."));
    model->appendRow(item);

    {   
        DevicesReferer hydrants(DT_JettingHydrantDecoder, Controller.GetDeviceList());
        for (DeviceListT::iterator it = hydrants->first; it != hydrants->second; ++it)
        {   
            if (it->second->GetDisable())
            {   
                continue;
            }
             if(it->second->GetDeviceType()->GetTypeId() == DT_ControlPanel)
             {   
                 continue;
             }
            
            item = new QStandardItem(
                QString("%1 号%2").arg(it->second->GetId(), 3, 10, QChar('0'))
                .arg(QString(it->second->GetDeviceType()->GetTypeName()))
                );
            
            item->setData((uint64_t)(it->second->GetGuid()), Qt::UserRole + 1);
            
            model->appendRow(item);
        }
    }
        {
        DevicesReferer hydrants(DT_AddJettingHydrantDecoder, Controller.GetDeviceList());
        for (DeviceListT::iterator it = hydrants->first; it != hydrants->second; ++it)
        {   
            if (it->second->GetDisable())
            {   
                continue;
            }
             if(it->second->GetDeviceType()->GetTypeId() == DT_ControlPanel)
             {   
                 continue;
             }
            
            item = new QStandardItem(
                QString("%1 号%2").arg(it->second->GetId(), 3, 10, QChar('0'))
                .arg(QString(it->second->GetDeviceType()->GetTypeName()))
                );

            item->setData((uint64_t)(it->second->GetGuid()), Qt::UserRole + 1);
         model->appendRow(item);
        }
    }
    ui->comboBox->setModel(model);
    model->sort(0);
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了