目录
一、属性和方法
1、占位字符串
占位字符,就是当文本框中输入内容为空时,显示的字符,用于提示用户文本框中应该输入什么内容。
// 获取和设置占位字符串
QString placeholderText() const
void setPlaceholderText(const QString &)
2、回显模式
回显模式就是输入的内容如何显示
// 获取和设置回显模式
QLineEdit::EchoMode echoMode() const
void setEchoMode(QLineEdit::EchoMode)
其中,QLineEdit::EchoMode 是一个宏,有如下 4 个取值:
QLineEdit::Normal
正常模式。输入什么就显示什么,默认就是这种方式
QLineEdit::Password
密码模式。不显示实际输入的字符,而是以小圆圈代替,这样别人就无法看到输入的字符。
QLineEdit::NoEcho
无回显模式。无论输入什么内容,在文本框中都不会显示,这样别人既无法看到输入的内容,也无法知道输入字符的长度
这对于输入密码非常有用,在linux下输入密码时,就是这种模式
QLineEdit::PasswordEchoOnEdit
正在输入时显示正常模式显示,当失去焦点时以密码模式显示,也就是显示小圆圈
3、读写控制
// 获取和设置文本框的只读属性
bool isReadOnly() const
void setReadOnly(bool)
// 获取和设置文本框的是否使能
bool isEnabled() const
void setEnabled(bool)
4、格式控制
用于指定文本框输入特定格式的内容。比如输入电话号码格式的文本
// 设置和获取格式控制
QString inputMask() const
void setInputMask(const QString &inputMask)
//无格式
// 接受任何字符的输入
setInputMask("");
//电话号码
// 9 - 表示要求输入0-9的数字
// ;# - 表示格式字符串结束,并且未输入时显示#
ui->leMask->setInputMask("99999999999;#");
//密钥
// 9 - 表示要求输入0-9的数字
// ;# - 表示格式字符串结束,并且未输入时显示*
ui->leMask->setInputMask(">AAAAA-AAAAA-AAAAA-AAAAA-AAAAA;*");
5、信号槽
// 当文本框内容改变时,发射该信号
void textChanged(const QString &text)
// 当输入完毕时,发射该信号
void editingFinished()
二、QLineEdit案例
1、UI界面布局
2、核心代码
#include "widget.h"
#include "ui_widget.h"
#include <QMessageBox>
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
}
Widget::~Widget()
{
delete ui;
}
// 1、回显模式
void Widget::on_btn_normal_clicked()
{
ui->lineEdit_huixian->clear();
ui->lineEdit_huixian->setEchoMode(QLineEdit::Normal);
ui->lineEdit_huixian->setPlaceholderText("noraml");
}
void Widget::on_btn_mima_clicked()
{
ui->lineEdit_huixian->clear();
ui->lineEdit_huixian->setEchoMode(QLineEdit::Password);
ui->lineEdit_huixian->setPlaceholderText("password");
}
void Widget::on_btn_huixian_clicked()
{
ui->lineEdit_huixian->clear();
ui->lineEdit_huixian->setEchoMode(QLineEdit::NoEcho);
ui->lineEdit_huixian->setPlaceholderText("noecho");
}
void Widget::on_btn_shimima_clicked()
{
ui->lineEdit_huixian->clear();
ui->lineEdit_huixian->setEchoMode(QLineEdit::PasswordEchoOnEdit);
ui->lineEdit_huixian->setPlaceholderText("passwordEchoOnEdit");
}
void Widget::on_btn_huixian_shuchu_clicked()
{
QMessageBox::information(this,"回显模式",ui->lineEdit_huixian->text());
}
// 2、读写控制
void Widget::on_btn_duxie_clicked()
{
ui->lineEdit_duxie->setReadOnly(false);
ui->lineEdit_duxie->setPlaceholderText("readwrite");
}
void Widget::on_btn_du_clicked()
{
ui->lineEdit_duxie->setReadOnly(true);
ui->lineEdit_duxie->setPlaceholderText("readonly");
}
void Widget::on_btn_dustop_clicked()
{
ui->lineEdit_duxie->setEnabled(false);
ui->lineEdit_duxie->setPlaceholderText("disable");
}
void Widget::on_btn_dustart_clicked()
{
ui->lineEdit_duxie->setEnabled(true);
ui->lineEdit_duxie->setPlaceholderText("enable");
}
void Widget::on_btn_duxie_shuchu_clicked()
{
QMessageBox::information(this,"读写控制",ui->lineEdit_duxie->text());
}
// 3、格式控制
void Widget::on_btn_wu_clicked()
{
ui->lineEdit_geshi->setInputMask("");
}
void Widget::on_btn_haoma_clicked()
{
// 9 - 表示要求输入0-9的数字
// ;# - 表示格式字符串结束,并且未输入时显示#
ui->lineEdit_geshi->setInputMask("99999999999;#");
}
void Widget::on_btn_miyao_clicked()
{
// > 是将转成大写
ui->lineEdit_geshi->setInputMask(">AAAAA-AAAAA-AAAAA-AAAAA-AAAAA;*");
}
// 4、信号槽演示
void Widget::on_lineEdit_sum1_textChanged(const QString &arg1)
{
int sum = arg1.toInt() + ui->lineEdit_sum2->text().toInt();
ui->lineEdit_sumhe->setText(QString::number(sum));
}
void Widget::on_lineEdit_sum2_textChanged(const QString &arg1)
{
int sum = arg1.toInt() + ui->lineEdit_sum1->text().toInt();
ui->lineEdit_sumhe->setText(QString::number(sum));
}