Qt之QLineEdit
1.概述
QLineEdit允许用户输入和编辑单行纯文本。本文主要介绍QLineEdit的几个常用功能。
1.介绍文本框的样式
2.设置文本框是否可编辑
3.设置文本框的显示和隐藏
4.设置密码文本框
5.设置文本框文本对齐
6.设置文本框图标,采用验证器验证用户输入手机号
7.介绍QLineEdit的6种信号槽
QLineEdit功能验证实现如下图所示:
2.实现过程
2.1新建MyLineEdit类
新建MyLineEdit类,继承自QLineEdit类,封装文本框样式和文本框边框显隐方法。
(1)MyLineEdit.h
#ifndef MYLINEEDIT_H
#define MYLINEEDIT_H
#include <QLineEdit>
#include <QAction>
class MyLineEdit : public QLineEdit
{
public:
MyLineEdit(QWidget *parent = 0);
//隐藏边框
void HideBorder(bool isHide = true);
//设置文本框样式
QString setLineEditQss(int radius = 3, //圆角半径
int borderWidth = 2, //边框大小
const QString &normalColor = "#DCE4EC", //正常颜色
const QString &focusColor = "#34495E", //选中颜色
const QString iconPath = "");
};
#endif // MYLINEEDIT_H
(2)MyLineEdit.cpp
#include "mylineedit.h"
MyLineEdit::MyLineEdit(QWidget *parent):QLineEdit(parent)
{
}
void MyLineEdit::HideBorder(bool isHide)
{
if(isHide)
setStyleSheet("board-width:0;border-style:outset");
else
setLineEditQss(5,2,"#DCE4EC","#34495E");
}
QString MyLineEdit::setLineEditQss(int radius, int borderWidth,
const QString &normalColor,
const QString &focusColor,
const QString iconPath)
{
QStringList list;
list.append(QString("QLineEdit{border-style:none;padding:3px;border-radius:%1px;border:%2px solid %3;}")
.arg(radius).arg(borderWidth).arg(normalColor));
list.append(QString("QLineEdit:focus{border:%1px solid %2;}")
.arg(borderWidth).arg(focusColor));
QString qss = list.join("");
setStyleSheet(qss);
if(iconPath != "")
{
QAction *action = new QAction(