怎么用c++ qt自定义搜索编辑框
发表于:2025-11-15 作者:千家信息网编辑
千家信息网最后更新 2025年11月15日,今天小编给大家分享一下怎么用c++ qt自定义搜索编辑框的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们
千家信息网最后更新 2025年11月15日怎么用c++ qt自定义搜索编辑框
今天小编给大家分享一下怎么用c++ qt自定义搜索编辑框的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。
实现效果如下:

实现方法说明:
(1)自定义QLineEdit,在编辑框里添加布局,将按钮设置在右边
(2)给自定义QLineEdit添加信号,当点击按钮搜索按钮时发送信号到主界面做相应的操作
自定义LineEdit
csearchlineedit.h
#ifndef CSEARCHLINEEDIT_H#define CSEARCHLINEEDIT_H#include#include #include class CSearchLineEdit : public QLineEdit{ Q_OBJECTpublic: CSearchLineEdit(QWidget* parent = nullptr);signals: void sig_search(const QString& context);private slots: void on_ClickedSearch();private: QPushButton *m_pBtn = nullptr;};#endif // CSEARCHLINEEDIT_H
csearchlineedit.cpp
#include "csearchlineedit.h"#includeCSearchLineEdit::CSearchLineEdit(QWidget* parent) :QLineEdit(parent){ m_pBtn = new QPushButton(this); m_pBtn->setCursor(Qt::PointingHandCursor); m_pBtn->setFixedSize(22, 22); m_pBtn->setToolTip(QStringLiteral("搜索")); m_pBtn->setStyleSheet("QPushButton{border-image:url(:/images/icon_search_normal); background:transparent;} \ QPushButton:hover{border-image:url(:/images/icon_search_hover)} \ QPushButton:pressed{border-image:url(:/images/icon_search_press)}"); // 防止文本框输入内容位于按钮之下 QMargins margins = this->textMargins(); //设置文本内容左上右下的间隙 this->setTextMargins(0, 0, m_pBtn->width() + 1, 0); this->setPlaceholderText(QStringLiteral("请输入搜索内容")); // 给编辑框设置布局 QHBoxLayout *pSearchLayout = new QHBoxLayout(this); pSearchLayout->addStretch(); pSearchLayout->addWidget(m_pBtn); pSearchLayout->setSpacing(0); pSearchLayout->setContentsMargins(0, 0, 0, 0); this->setLayout(pSearchLayout); connect(m_pBtn, &QPushButton::clicked, this, &CSearchLineEdit::on_ClickedSearch);}void CSearchLineEdit::on_ClickedSearch() // 其它逻辑 emit sig_search(this->text());
注意这里是在主界面接收搜索按钮的点击事件,槽函数的参数是搜索内容,const QString&,当然也可以在CSearchLineEdit里处理,不过一般习惯把控件代码和逻辑代码分开,尽量不在控件类里处理业务逻辑。
主界面代码
#include "widget.h"#include#include #include #include #include "csearchlineedit.h"Widget::Widget(QWidget *parent) : QWidget(parent){ resize(400, 300); setWindowTitle(QStringLiteral("自定义搜索框")); CSearchLineEdit *pLineEdit = new CSearchLineEdit(this); QVBoxLayout *pLayout = new QVBoxLayout(); pLayout->addWidget(pLineEdit); pLayout->setContentsMargins(10, 10, 10, 10); setLayout(pLayout); connect(pLineEdit, &CSearchLineEdit::sig_search, this, &Widget::onSearch);}Widget::~Widget()void Widget::onSearch(const QString& context) if (context.isEmpty()) { QMessageBox::information(this, QStringLiteral("提示"), QStringLiteral("搜索内容为空")); return; } QMessageBox::information(this, QStringLiteral("提示"), QStringLiteral("搜索内容为%1").arg(context));
其它说明
除了可以在右边添加按钮,还可以在左边添加按钮,只要合理的设置LineEdit的文本与左右两边控件的间隙即可。比如下面的自定义编辑框:
优酷搜索框

钉钉搜索框
这些都是可以实现的,优酷则需要用qss把LineEdit的四周圆角设为高度的一半,右侧按钮的圆角也设为高度的一半,这样就实现了;钉钉的搜索框则是搜索按钮在左边;二者的搜索功能都会有弹出对话框的功能,例如钉钉
这个也可以做,LineEdit获得焦点时,弹出对话框即可。
以上就是"怎么用c++ qt自定义搜索编辑框"这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注行业资讯频道。
搜索
按钮
内容
知识
篇文章
逻辑
代码
控件
文本
界面
c++
信号
功能
右边
圆角
对话框
布局
间隙
面的
高度
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
上海奢美网络技术
快乐支付提示服务器超时
服务器数据被防火墙拦截怎么回事
守护网络安全的天使
中学生网络安全大赛
湖州聚新网络技术有限公司
基岩服务器搭建
天勤创网络技术有限公司
skinme 服务器
有一个网络安全手抄报
公司信息 数据库
it服务器是什么
网络安全绘画的图片
无线网络安全通知
批量导入省略数据库已存在数据
网络安全与支付500字
3级网络技术选择题
北京顺丰软件开发
sql数据库表记录查询
株洲网络技术推广营销
虚拟机服务器坏了怎么办
商业软件开发是什么
贵州系统软件开发
裁判文书数据库的区别
上海蛙扑网络技术公司
江苏运营软件开发代理商
盈创互联网科技有限公司
按照网络安全等级
数据库的产生
数据库怎样存时间数据