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是额外的留白,主要是为了美观。

好了。代码就是那么简单。

最新文章

  1. centos安装nodejs
  2. 清理session的案例
  3. C/C++ 结构体 数组 函数传递
  4. Cannot refer to an instance field pageTitle while explicitly invoking a cons
  5. 虚拟化之lxc
  6. android模拟器(genymotion)+appium+python 框架执行过程中问题解答
  7. 网站整站变灰的方法(不支持IE10)
  8. C#使用SocketAsyncEventArgs操作套接字的简单异步通讯
  9. java初学的几个问题
  10. jquery自调用匿名函数解析
  11. hdu 5392 Infoplane in Tina Town(数学)
  12. mysql 创建用户与授权、修改密码
  13. qlv格式转换成MP4格式
  14. HBase0.98使用ReplicationAdmin管理集群同步
  15. webpack4.x笔记-配置基本的前端开发环境(一)
  16. C#经典面试题及答案
  17. 20155324 《Java程序设计》实验三 敏捷开发与XP实践
  18. Jackson解析XML
  19. Unity里vertexShader里压扁模型来实现比较low的阴影
  20. java 线程的简单理解

热门文章

  1. Redis远程连接
  2. 【原创】利用doxygen来管理项目文档或注释
  3. 01-Entity FrameWork如何控制数据的变化
  4. 短URL生成
  5. 微信小程序组件解读和分析:三、swiper滑块视图
  6. 安装好Pycharm后如何配置Python解释器简易教程
  7. HDU_3496_(二维费用背包)
  8. 给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null。
  9. 03Struts2基本使用流程
  10. Leetcode724:寻找数组的中心索引(java、python3)