qt自定义搜索框(超简单,带效果图)
2016-02-24 15:19
141 查看
1. 什么也不要说,先上效果图:
2. 代码
头文件:
简单讲一下代码,这里用到的搜索图标大小为13*13,所以那个搜索按钮设置为固定大小13*13,代码中的
这里设置的8个长度是图标左边的宽度,这样图标就不会紧挨着搜索框的边框了。还有一句
这里13是图标的宽度,8是布局的left margin,也就是上面设置的那个,2是额外的留白,主要是为了美观。
好了,代码就是那么简单。
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,所以那个搜索按钮设置为固定大小13*13,代码中的
mainLayout->setContentsMargins(8,0,0,0);
这里设置的8个长度是图标左边的宽度,这样图标就不会紧挨着搜索框的边框了。还有一句
setTextMargins(13+8+2,0,0,0);
这里13是图标的宽度,8是布局的left margin,也就是上面设置的那个,2是额外的留白,主要是为了美观。
好了,代码就是那么简单。
相关文章推荐
- mp4格式文件转码后处理(qt-faststart).md
- qt5-qmake
- PyCharm+QT Designer整合
- Qt构建工具QBS之一 ——从一个简单的工程开始
- 《转》PyQt之自定义无边框窗口遮盖任务栏显示问题
- Qt构建工具QBS之零 —— QBS 概览
- QT5 MSVC2013数据库SQLserver操作中文显示乱码问题
- QT Creator 两种创建项目的方法
- Qt浅谈之窗体缩放(仅增加测试代码)
- Qt上截取中英文混合字符串的指定长度内容
- 用Qt实现一个桌面弹幕程序(六)-- -- 桌面客户端实现②
- opencv + Qt5.5 + cmake(你遇到的问题,我知道)
- qt的tabwidget在button点击下,切换页面
- PyQt4入门教程(5)_事件与信号
- Qt对话框QDialog的返回值
- Ubuntu14下OpenCV3和QT5的安装及联合使用
- 一起看代码来玩玩QT之09 Signal and SLOT ( 信号和槽)
- Qt实践之2048:
- VS2010 编译64位Qt
- Pyqt4学习笔记-窗口组件(更新ing)