Qt 搜索框
一、前言
用户需要输入文本时,可使用QLineEdit控件进行编辑输入,缺点是样式相对单一。
在使用百度搜索输入框时,发觉比较人性化,故采用QLineEdt+QPushButton通过css样式实现自定义搜索框控件,包含如下功能:
1、可设置占位符文本
2、可设置搜索按钮显示字符内容、文本颜色
3、可设置搜索按钮为图标形式或文本形式
4、可设置背景色、边框颜色、边框圆角角度
5、支持回车发送当前文本信号
6、支持获取当前编辑文本内容
7、支持设置当前文本内容
8、鼠标移入/移出到搜索按钮上,切换鼠标状态
二、搜索框实现
1、运行环境Qt5.5 VS2013
2、自定义搜索框
1)继承QWidget,定义搜索框类SearchLineEdit
2)采用水平无间距布局

1 //用于输入搜索文本,左对齐
2 m_LineEdit = new QLineEdit;
3 m_LineEdit->setObjectName("SearchText");
4 m_LineEdit->setPlaceholderText(" 请输入搜索字符");
5 m_LineEdit->setAlignment(Qt::AlignLeft | Qt::AlignVCenter);
6 m_LineEdit->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
7 connect(m_LineEdit, SIGNAL(editingFinished()), this, SLOT(searchSlot()));
8
9 m_Button = new QPushButton;
10 m_Button->setObjectName("SearchButton");
11 m_Button->setText(buttonText);
12 m_Button->setIconSize(QSize(28, 28));
13 m_Button->setFixedWidth(55);
14 m_Button->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
15 connect(m_Button, SIGNAL(clicked(bool)), this, SLOT(searchSlot()));
16 m_Button->installEventFilter(this);
17
18 m_BgFrame = new QFrame;
19 m_BgFrame->setObjectName("frameSearch");
20
21 //设置样式
22 setStyle();
23
24 QVBoxLayout *verticalLayout = new QVBoxLayout(this);
25 verticalLayout->setMargin(0);
26 verticalLayout->setSpacing(0);
27 verticalLayout->addWidget(m_BgFrame);
28
29 //将控件按照横向布局排列
30 QHBoxLayout *layout = new QHBoxLayout(m_BgFrame);
31 layout->setMargin(0);
32 layout->setSpacing(0);
33 layout->addWidget(m_LineEdit);
34 layout->addWidget(m_Button);
控件布局
3)设置QLineEdit与QPushButton的显示样式

void SearchLineEdit::setStyle()
{
QStringList qss; qss.append(QString("QFrame#%1{border:none;border-radius:%2px;}")
.arg(m_BgFrame->objectName()).arg(borderRadius));
qss.append(QString("QLineEdit{background-color:%1;border:none;}").arg(bgColor));
qss.append(QString("QLineEdit{border-top-left-radius:%1px;border-bottom-left-radius:%1px;border:2px solid %2;}")
.arg(borderRadius).arg(borderColor));
qss.append(QString("QPushButton{background-color:%1;border:none;color:%2;}")
.arg(borderColor).arg(buttonTextColor));
qss.append(QString("QPushButton{border-top-right-radius:%1px;border-bottom-right-radius:%1px;}")
.arg(borderRadius)); m_BgFrame->setStyleSheet(qss.join(""));
}
样式设置
3、控件效果如下

Qt 搜索框的更多相关文章
- Qt之自定义搜索框
简述 关于搜索框,大家都经常接触.例如:浏览器搜索.Windows资源管理器搜索等. 当然,这些对于Qt实现来说毫无压力,只要思路清晰,分分钟搞定. 方案一:调用QLineEdit现有接口 void ...
- 【Qt】Qt之自定义搜索框【转】
简述 关于搜索框,大家都经常接触.例如:浏览器搜索.Windows资源管理器搜索等. 当然,这些对于Qt实现来说毫无压力,只要思路清晰,分分钟搞定. 简述 效果 细节分析 Coding 源码下载 效果 ...
- [Qt] searchBox 搜索框实现
[Qt] searchBox 搜索框实现 也就是在lineEdit中加入button.在搜索框的右边会有个小小的搜索图标,输入内容之后,搜索的图标会变成叉叉. 类中的IconHelper见我的另一篇博 ...
- qt自己定义搜索框(超简单,带效果图)
1. 什么也不要说.先上效果图: 2. 代码 头文件: #ifndef APPSEARCHLINE_H #define APPSEARCHLINE_H #include <QLineEdit&g ...
- Qt之自定义搜索框——QLineEdit里增加一个Layout,还不影响正常输入文字(好像是一种比较通吃的方法)
简述 关于搜索框,大家都经常接触.例如:浏览器搜索.Windows资源管理器搜索等. 当然,这些对于Qt实现来说毫无压力,只要思路清晰,分分钟搞定. 方案一:调用QLineEdit现有接口 void ...
- Qt QLineEdit 漂亮的搜索框 && 密码模式 && 格式化输入 && 提示文字 && 选择内容并移动 && 清除全部输入
先上一个漂亮的搜索框效果图, 输入搜索文本效果, 点击搜索图标效果: //实现代码 void MainWindow::iniLineEdit() { ui->lineEdit->setPl ...
- 三、jQuery--jQuery实践--搜索框制作
input标签讲解 <input/>作为按钮的type属性:button.submit(后面会有二者对比分析)
- ios开发之--搜索框的使用(PYSearchViewController的使用)
最近需要开发搜索框,比较了以前的各个版本的搜索框,UISearchDisplayController和UISearchController的使用,以后再做记录,随着ios11的更新,一些控件发生了,改 ...
- (八)solr7实现搜索框的自动提示并统计词频
solr7实现搜索框的自动提示并统计词频 1:用solr 的suggest组件,统计词频相对麻烦. 2:用TermsComponent,自带词频统计功能. Terms组件提供访问索引项的字段和每个词 ...
随机推荐
- JAVAEE_Servlet_13_HttpServlet
HttpServlet 因为每次执行前端请求,都需要获取前端的请求方式,都需判断前端的请求方式和后端是否一致,随意这段代码就可以封装起来. 写一个HttpServlet类去继承GenericServl ...
- Pytorch系列:(三)模型构建
nn.Module 函数详解 nn.Module是所有网络模型结构的基类,无论是pytorch自带的模型,还是要自定义模型,都需要继承这个类.这个模块包含了很多子模块,如下所示,_parameters ...
- volatile修饰全局变量,可以保证并发安全吗?
今天被人问到volatile能不能保证并发安全? 呵,这能难倒我? 上代码: //电脑太好,100线程起步~public class ThreadTest { private static volat ...
- Fiddler高级用法
Fiddler高级用法 1. 简单用法 Fiddler作为一个基于http协议的抓包工具,一直在业界有广泛使用.很多测试或者前端在使用Fiddler时,仅仅用于查看前端和服务端之间的请求信息.包括我作 ...
- 『政善治』Postman工具 — 3、补充:restful风格接口的项目说明
目录 (一)RESTful架构风格特点 1.统一接口风格 2.规范的HTTP请求方法 3.HTTP响应码 4.什么是无状态 (二)JSON数据格式说明 1.什么是JSON 2.JSON格式的特点 3. ...
- linux下export命令添加删除环境变量
Linux export命令参数 功能说明:设置或显示环境变量. 语 法:export [-fnp][变量名称]=[变量设置值] 补充说明:在shell中执行程序时,shell会提供一组环境变量. ...
- 洛谷P1085 不高兴的津津
题目描述 津津上初中了.妈妈认为津津应该更加用功学习,所以津津除了上学之外,还要参加妈妈为她报名的各科复习班.另外每周妈妈还会送她去学习朗诵.舞蹈和钢琴.但是津津如果一天上课超过八个小时就会不高兴,而 ...
- XCTF-FlatScience
FlatScience 题目描述 啥描述也没有 解题过程 页面有好多链接,除了论文pdf之外,还有子目录下的index.html, 比如:/1/index.html,/1/3/index.html 扫 ...
- ThinkPHP5 Apache / IIs环境下 URL重写
thinkPHP5新版本 隐藏index.php隐藏index.php 都写好了 public 隐藏 独立主机可以直接把根目录指向public下 虚拟主机可以把public下的index.php放到根 ...
- 附近的人?你zao吗?
前几天收到一个新的需求,需要实现类似"附近的人"的功能:根据自己当前的定位,获取距离范围内的所有任务地点.刚看到这个需求时有点懵逼,第一想到的就是要利用地球的半径公式去计算距离,也 ...