怎么用c++ qt自定义搜索编辑框
发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,今天小编给大家分享一下怎么用c++ qt自定义搜索编辑框的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们
千家信息网最后更新 2026年11月04日怎么用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安全错误
数据库的锁怎样保障安全
精品咖啡豆
科技平台互联网
互联网金融监管科技数据
奇酷互联网科技公司
银优互联网科技有限公司
天津摩尔互联网科技
易通互联网络科技有限公司
唐信互联网科技 大连
成都玖崟互联网科技有限公司乐商圈怎么样
字节跳动和互联网科技
福建科技产业互联网发展
互联网公司科技股
互联网媒体平台算高科技产业
亳州好赞互联网科技有限公司
国大互联网教育科技有限公司工作
东营紫格互联网科技
易企秀互联网科技是做什么的
艺电能源互联网科技有限公司招聘
现代科技的标志之一的互联网
知域互联网科技有限公司官网
咖啡豆
互联网科技公司简介
未来的互联网科技
本届互联网博览会上的黑科技
天津腾达互联网科技有限公司
烟台灵鸽互联网科技有限公司
上海钢联属于互联网科技股吗
中天科技中国工业互联网
科技互联网公司两年变化
深圳互联网科技园地址