qt自己定义搜索框(超简单,带效果图)
2024-09-03 19:49:43
1. 什么也不要说。先上效果图:
2. 代码
头文件:
#ifndef APPSEARCHLINE_H
#define APPSEARCHLINE_H #include <QLineEdit> class AppSearchLine : public QLineEdit
{
Q_OBJECT
public:
AppSearchLine(QWidget *parent = 0);
}; #endif // APPSEARCHLINE_H
源文件
#include "appsearchline.h"
#include <QHBoxLayout>
#include <QPushButton>
AppSearchLine::AppSearchLine(QWidget *parent)
:QLineEdit(parent)
{
QHBoxLayout *mainLayout = new QHBoxLayout;
QPushButton *searchBtn = new QPushButton;
searchBtn->setFixedSize(13,13);
searchBtn->setCursor(Qt::PointingHandCursor);
searchBtn->setToolTip(tr("搜索"));
searchBtn->setStyleSheet("QPushButton{border-image:url(:/image/resources/image/search-icon.png);"
"background:transparent;cursor:pointer;}");
setPlaceholderText(tr("搜索"));
mainLayout->addWidget(searchBtn);
mainLayout->addStretch();
//mainLayout->setContentsMargins(8,8,8,8);
mainLayout->setContentsMargins(8,0,0,0);
setTextMargins(13+8+2,0,0,0);
setContentsMargins(0,0,0,0);
setLayout(mainLayout);
setStyleSheet("height:29px;border:1px solid #eaeaea;border-radius:14px;");
}
简单讲一下代码,这里用到的搜索图标大小为13*13,所以那个搜索button设置为固定大小13*13,代码中的
mainLayout->setContentsMargins(8,0,0,0);
这里设置的8个长度是图标左边的宽度,这样图标就不会紧挨着搜索框的边框了。
另一句
setTextMargins(13+8+2,0,0,0);
这里13是图标的宽度。8是布局的left margin,也就是上面设置的那个,2是额外的留白,主要是为了美观。
好了。代码就是那么简单。
最新文章
- centos安装nodejs
- 清理session的案例
- C/C++ 结构体 数组 函数传递
- Cannot refer to an instance field pageTitle while explicitly invoking a cons
- 虚拟化之lxc
- android模拟器(genymotion)+appium+python 框架执行过程中问题解答
- 网站整站变灰的方法(不支持IE10)
- C#使用SocketAsyncEventArgs操作套接字的简单异步通讯
- java初学的几个问题
- jquery自调用匿名函数解析
- hdu 5392 Infoplane in Tina Town(数学)
- mysql 创建用户与授权、修改密码
- qlv格式转换成MP4格式
- HBase0.98使用ReplicationAdmin管理集群同步
- webpack4.x笔记-配置基本的前端开发环境(一)
- C#经典面试题及答案
- 20155324 《Java程序设计》实验三 敏捷开发与XP实践
- Jackson解析XML
- Unity里vertexShader里压扁模型来实现比较low的阴影
- java 线程的简单理解