Qt QLineEdit篇

QLineEdit篇

  • 【1】QLineEdit简介
  • 【2】QLineEdit常用方法
  • 【3】QLineEdit使用举例
    • UI设计界面
    • 效果
    • 头文件
    • 源文件

PC饱和了,跟我学Qt比较实在,哈哈哈

【1】QLineEdit简介

QLineEdit是Qt框架中的一个类,用于创建一个文本输入框,允许用户在其中输入和编辑文本内容。它是Qt中最基本、最常用的输入控件之一。

QLineEdit主要用于以下功能:

  1. 文本输入:用户可以在QLineEdit中输入和编辑文本内容。

  2. 格式验证:可以通过设置输入掩码或验证器,限制用户输入的格式,例如电话号码、日期、邮箱等。

  3. 密码输入:可以设置输入模式为密码模式,隐藏用户输入的字符。

  4. 自动补全:可以启用自动补全功能,根据已输入的内容提供匹配的建议。

  5. 文本变动信号:可以连接信号-槽机制,监听文本输入的变化。

  6. 光标操作:可以通过函数移动和控制输入框中的光标。

QLineEdit提供了一系列函数来设置和获取文本内容、设置输入掩码、验证、密码模式以及其他属性。此外,它还可以与其他控件和布局进行交互,方便地嵌入到界面中使用。

通过使用QLineEdit,你可以方便地实现文本输入和编辑的功能,并对用户输入进行限制和验证。这使得QLineEdit成为开发用户界面时不可或缺的组件之一。

【2】QLineEdit常用方法

当初次学习使用QLineEdit时,可以通过使用其不同的函数来了解其功能和使用方式。以下是一些常用的QLineEdit函数及其简单示例:

  1. setText(const QString &text):设置文本内容。
QLineEdit *lineEdit = new QLineEdit(this);
lineEdit->setText("Hello, world!");
  1. text():获取当前文本内容。
QString currentText = lineEdit->text();
  1. setPlaceholderText(const QString &text):设置占位文本,提示用户输入内容。
lineEdit->setPlaceholderText("Enter your name");
  1. setMaxLength(int length):设置最大输入长度。
lineEdit->setMaxLength(10);
  1. setEchoMode(QLineEdit::EchoMode mode):设置输入模式,如显示正常输入字符、密码字符等。
lineEdit->setEchoMode(QLineEdit::Password);
  1. setReadOnly(bool readOnly):设置是否只读,即用户无法修改文本内容。
lineEdit->setReadOnly(true);
  1. setValidator(const QValidator *validator):设置输入验证器,用于限制输入的格式。
QIntValidator *validator = new QIntValidator(0, 100, this);  // 输入限制为0到100的整数
lineEdit->setValidator(validator);
  1. setAlignment(Qt::Alignment alignment):设置文本对齐方式。
lineEdit->setAlignment(Qt::AlignCenter);
  1. clear():清除文本内容。
lineEdit->clear();
  1. setEnabled(bool enabled):设置是否启用QLineEdit控件。
lineEdit->setEnabled(false);

【3】QLineEdit使用举例

UI设计界面

在这里插入图片描述

效果

在这里插入图片描述

头文件

#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
#include <QDebug>
#include <QIntValidator>  // int 验证器;QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACEclass Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = nullptr);~Widget();private slots:void on_pb_lineEdit_clicked();void on_pushButton_clicked();void on_lineEdit_textChanged(const QString &arg1);void on_lineEdit_textEdited(const QString &arg1);void on_lineEdit_editingFinished();private:Ui::Widget *ui;// 用户自定义};
#endif // WIDGET_H

源文件

#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);}Widget::~Widget()
{delete ui;
}// QLineEdit学习
void Widget::on_pb_lineEdit_clicked()
{// 获取和设置占位字符串ui->lineEdit->setPlaceholderText("请输入你要查询的信息...");ui->textBrowser->append("函数原型:【void setPlaceholderText(const QString &)】设置占位字符串");ui->textBrowser->append("函数原型:【QString placeholderText() const】获取占位字符串:"+ui->lineEdit->placeholderText());// 获取和设置文本的对齐方式/* 其中,Qt::Alignment 是一个宏,常用取值如下:Qt::AlignLeft(0x0001) 水平方向-左对齐Qt::AlignRight(0x0002) 水平方向-右对齐Qt::AlignHCenter(0x0004) 水平方向-居中对齐Qt::AlignTop(0x0020)垂直方向-上对齐Qt::AlignBottom(0x0040)垂直方向-下对齐Qt::AlignVCenter(0x0080)垂直方向-居中对齐Qt::AlignCenter(AlignVCenter | AlignHCenter) 垂直方向和水平方向-居中对齐*/ui->lineEdit->setAlignment(Qt::AlignmentFlag::AlignLeft | Qt::AlignmentFlag::AlignCenter);ui->textBrowser->append("\r\n函数原型:【Qt::Alignment alignment() const】设置文本的对齐方式 左对齐、水平和垂直都居中");ui->textBrowser->append("函数原型:【void setAlignment(Qt::Alignment flag)】获取文本的对齐方式:"+QString::number(ui->lineEdit->alignment()));// 获取和设置回显模式/* 其中,QLineEdit::EchoMode 是一个宏,有如下 4 个取值:QLineEdit::Normal正常模式。输入什么就显示什么,默认就是这种方式QLineEdit::Password密码模式。不显示实际输入的字符,而是以小圆圈代替,这样别人就无法看到输入的字符。QLineEdit::NoEcho无回显模式。无论输入什么内容,在文本框中都不会显示,这样别人既无法看到输入的内容,也无法知道输入字符的长度这对于输入密码非常有用,在linux下输入密码时,就是这种模式QLineEdit::PasswordEchoOnEdit正在输入时显示正常模式显示,当失去焦点时以密码模式显示,也就是显示小圆圈*/ui->textBrowser->append("\r\n函数原型:【QLineEdit::EchoMode echoMode() const】设置回显模式 QLineEdit::Normal");ui->lineEdit->setEchoMode(QLineEdit::EchoMode::Normal);//ui->lineEdit->setEchoMode(QLineEdit::EchoMode::NoEcho);//ui->lineEdit->setEchoMode(QLineEdit::EchoMode::Password);//ui->lineEdit->setEchoMode(QLineEdit::EchoMode::PasswordEchoOnEdit);ui->textBrowser->append("函数原型:【void setAlignment(Qt::Alignment flag)】获取回显模式:"+QString::number(ui->lineEdit->echoMode()));// 获取和设置文本框的只读属性ui->lineEdit->setReadOnly(false);ui->textBrowser->append("\r\n函数原型:【void setReadOnly(bool)】设置文本框的只读属性");ui->textBrowser->append("函数原型:【bool isReadOnly() const】获取文本框的只读属性:"+QString::number(ui->lineEdit->isReadOnly()));// 获取和设置文本框的是否使能ui->lineEdit->setEnabled(true);ui->textBrowser->append("\r\n函数原型:【void setEnabled(bool)】设置文本框的不使能");ui->textBrowser->append("函数原型:【bool isEnabled() const】获取文本框的使能值:"+QString::number(ui->lineEdit->isEnabled()));// 设置和获取格式控制// 接受任何字符的输入ui->lineEdit->setInputMask("");// 9 - 表示要求输入0-9的数字// ;# - 表示格式字符串结束,并且未输入时显示#//ui->lineEdit->setInputMask("99999999999;#"); // 输入11个数,每个数最大不超过9//ui->lineEdit->setInputMask("(999) 9999-9999");  // 设置输入掩码,只允许输入格式为:(三位数字)空格四位数字-四位数字的电话号码ui->textBrowser->append("\r\n函数原型:【void setInputMask(const QString &inputMask)】设置格式控制");ui->textBrowser->append("函数原型:【QString inputMask() const】获取格式控制:"+ui->lineEdit->inputMask());// 设置最大长度为10个字符ui->lineEdit->setMaxLength(15);//setValidator(const QValidator *validator):设置输入验证器,用于限制输入的格式。//QIntValidator *validator = new QIntValidator(0, 100, this);  // 输入限制为0到100的整数//ui->lineEdit->setValidator(validator);// 获取文本ui->textBrowser->append("\r\n函数原型:【ui->lineEdit->text()】获取文本:"+ui->lineEdit->text());}// 清空文本框和行编辑框
void Widget::on_pushButton_clicked()
{ui->lineEdit->clear();ui->textBrowser->clear();// 文本改变发射信号ui->lineEdit->setText("textEdited");
}// 在输入框文本改变时获取该文本
void Widget::on_lineEdit_textChanged(const QString &arg1)
{qDebug()<<"【on_lineEdit_textChanged】arg = "<<arg1;
}// 在文本改变时 输入或者设置都算
void Widget::on_lineEdit_textEdited(const QString &arg1)
{qDebug()<<"【on_lineEdit_textEdited】arg = "<<arg1;
}
// 当输入完毕时,发射该信号 a、按了 enter 键 b、文本框失去焦点
void Widget::on_lineEdit_editingFinished()
{qDebug()<<"on_lineEdit_editingFinished = "<<ui->lineEdit->text();
}

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/4838.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Google 将为高端 Chromebook 推出独立品牌

说起 Chromebook&#xff0c;一般大家的第一印象就是价格便宜、配置不高、做工普通&#xff0c;所选的材料也都是以塑料为主&#xff0c;产品主打的市场也是学生和教育群体。在不少人看来&#xff0c;Chromebook 就是一个配备了功能齐全的浏览器&#xff0c;外加一定的文件管理…

react antd 样式修改

最近在做一个大数据的大屏ui更改&#xff0c;使用的是antd&#xff0c;需要根据ui稿调很多的antd组件样式 特做一个样式修改记录&#xff0c;也给需要的人一些帮助 我们修改的有以下样式&#xff1a; 如何改呢&#xff1a; /*修改 antd 组件样式 */// 仅 drop 下的下拉框改变样…

苹果手机ios设备管理软件iMazing 2.17.6官方版下载及常见问题解决

苹果手机ios设备管理软件iMazing 2.17.6官方版下载(ios设备管理软件)是一款管理苹果设备的软件&#xff0c; Windows / macos 系统上的一款帮助用户管理 IOS 手机的应用程序&#xff0c;软件功能非常强大&#xff0c;界面简洁明晰、操作方便快捷&#xff0c;设计得非常人性化。…

命令模式(Command)

别名 动作&#xff08;Action&#xff09;事务&#xff08;Transaction&#xff09; 定义 命令是一种行为设计模式&#xff0c;它可将请求转换为一个包含与请求相关的所有信息的独立对象。该转换让你能根据不同的请求将方法参数化、延迟请求执行或将其放入队列中&#xff0c…

【PCB专题】Allegro如何设置电源电压属性,将飞线隐藏?

在PCB设计过程中,布局完成之后的布线的顺序一般是先走信号线,然后进行电源的处理、分割。因为电源往往在整个板子上是都有的,所以电源的飞线是非常多,在布线时特别影响其他信号线的布线,界面看着比较杂乱。 如下所示GND和1.8V都存在各种飞线,比较杂乱。 Allegro中有设置…

学习机组过程中的疑难问题与解决 -----(1)

本文章是在学习计算机组成原理过程中个人感觉需要理解与记忆的问题&#xff0c;还有一些在学习过程中自己产生的疑问以及解答,本文章可能排版不良&#xff0c;精力有限&#xff0c;还请见谅 第一章&#xff1a; &#xff08;1&#xff09;MAR的位数对应着存储单元的个数&#…

JVM学习整理(一)

一、JVM的基本介绍 JVM 是 Java Virtual Machine 的缩写&#xff0c;它是一个虚构出来的计算机&#xff0c;一种规范。通过在实际的计算机上仿真模拟各类计算机功能实现 好&#xff0c;其实抛开这么专业的句子不说&#xff0c;就知道JVM其实就类似于一台小电脑运行在windows或…

JSP网上订餐管理系统用eclipse定制开发mysql数据库BS模式java编程jdbc

一、源码特点 JSP 网上订餐管理系统是一套完善的web设计系统&#xff0c;对理解JSP java SERLVET mvc编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,eclipse开发&#xff0c;数据库为Mysql5.0&a…

Java微服务金融项目智牛股 项目简介与金融知识介绍及技术特点

项目简介 金融交易平台服务于金融衍生产品&#xff0c; 包含外汇、贵金属、期货、股票。 各产品具有不同属性与交易规则&#xff0c; 本项目对标MT4等大型交易平台&#xff0c; 遵循FIX全球最广泛的金融市场通用协议。 实现从证券注册开户、行情订阅与呈现&#xff0c; 股票撮合…

【GPT】如何拥有离线版本的GPT以及部署过程中的问题

【背景】 目前很多公司由于数据安全的问题&#xff0c;不能使用OpenAI的GPT&#xff0c;同时也没有必要非得使用如此泛用化的GPT。很多公司因此有训练自己的离线GPT的需求&#xff0c;这样的GPT只需要具备专业知识即可。 要使这个成为可能&#xff0c;首先就需要能够让GPT的Mo…

SAP ABAP 如果某字段没有参数ID,如自开发程序使用的自建表 新建参数ID

1&#xff09;新建参数ID sm30 TPARA 维护 输入ID和描述 2&#xff09; 参数ID和Se11数据元素 绑定

【MySQL学习笔记】(六)MySQL基本查询

表的增删查改 1 create1.1 单行数据全列插入1.2 多行数据 指定列插入1.3 插入否则更新1.4 替换 2 retrieve2.1 select列2.1.1 全列查询2.2.2 指定列查询2.2.3 查询字段为表达式2.2.4 为查询结果指定别名2.2.5 结果去重 2.2 where 条件2.2.1 null的查询 2.3 结果排序2.4 筛选分…