Qt - QComboBox的用户名+图标控件管理

本文介绍如何在Qt中使用QComboBox创建一个可从QListWidget动态加载的用户账户选择控件,并结合历史记录列表进行自动补全功能的实现。通过AccountItem实例化和QListWidgetItem管理,展示了如何实现实时账户选择与智能搜索功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

方法一:

Qt之基于QComboBox的用户名控件QAccount

 

方法二:

        m_pAccountListWidget = new QListWidget(this);		//QListWidget对象
        m_pUserIdComboBox->setModel(m_pAccountListWidget->model());
        m_pUserIdComboBox->setView(m_pAccountListWidget);
    
    QStringList valueList;//历史记录保存列表

    for(ssize_t i = 0; i< m_histroyUserInfoList.size(); i++)
    {
        AccountInfo tmp = m_histroyUserInfoList[i];
        valueList << tmp.name;
        qDebug() << tmp.name;

        QImage image;
        AccountItem* account_item = new AccountItem(image, tmp.name, QString::number(tmp.mid));
        QListWidgetItem *list_item = new QListWidgetItem(m_pAccountListWidget);
        list_item->setSizeHint(QSize(200, 60));
        //m_pAccountListWidget->setMinimumHeight(100);
        m_pAccountListWidget->addItem(list_item);
        m_pAccountListWidget->setItemWidget(list_item, account_item);
    }

    /*
    QStringListModel* listModel;//数据来源模型
    QCompleter *completer = new QCompleter(this); //提供自动补全的对象可用于lineEdit和combobox
    listModel = new QStringListModel(valueList, this);//填充模型
    completer->setCaseSensitivity(Qt::CaseInsensitive);//设置忽略大小写 //Qt::CaseSensitive区分大小写
    //Qt::CaseInSensitive不区分大小写
    completer->setModel(listModel);//填充数据来源模型
   m_pUserIdComboBox->setCompleter(completer);//使lineEdit提供自动完成
   */

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值