Qt控件——输入框QLineEdit

目录

一、属性和方法

1、占位字符串

2、回显模式

3、读写控制

4、格式控制

5、信号槽

二、QLineEdit案例

1、UI界面布局

2、核心代码


一、属性和方法

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));
}
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

琪琪猫不会嵌入式

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值