QLineEdit下利用QListWidget显示类似菜单功能

简述

在博主模仿酷狗播放器的过程中,遇见了一个如标题一样的问题,具体想实现的效果大概如下图。
由于未添加QListwidgetItem所以下框为空白

在这里诉说一下博主需要实现的效果,在QLineEdit(也就是搜索框)文本改变的时候出现QListWidget,在鼠标焦点不在QLineEdit时,隐藏QListWidget

实现

其实想要实现文本改变出现对QListwidget,只需要连接QLineEdit的textchanged信号,再在槽函数中实现相关操作

 connect(searchLineEdit, &QLineEdit::textChanged, this, &TopWidget::slt_searchInformationShow);
//由于本程序的位置,大小不固定,所以每次都需要动态检测搜索框位置
    QPoint pos = searchLineEdit->pos();
    pos.setY(pos.y() + searchLineEdit->height());
    searchList->setGeometry(pos.x(), pos.y(),searchLineEdit->width(),200);
    searchList->show();

关于隐藏QListWidget的操作,只需要注册一下QLineEdit的事件过滤器
实现相关操作即可

    //注册事件过滤器
    searchLineEdit->installEventFilter(this);
if(event->type() == QEvent::Leave)
    {
        if (obj == static_cast<QObject*>(searchLineEdit))
        {
            searchList->hide();
            return true;
        }
    }
    return QWidget::eventFilter(obj, event);
  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值