Qt QLineEdit篇

news2024/11/14 21:16:07

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_NAMESPACE

class Widget : public QWidget
{
    Q_OBJECT

public:
    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.coloradmin.cn/o/710634.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【WSN定位】基于蜣螂优化算法DBO的Dvhop定位算法 不同锚节点比例和不同通信半径情况下对比【Matlab代码#45】

文章目录 【可更换其他算法&#xff0c;获取资源请见文章第5节&#xff1a;资源获取】1. Dvhop定位算法2. 蜣螂优化算法3. 部分代码展示4. 仿真结果展示5. 资源获取 【可更换其他算法&#xff0c;获取资源请见文章第5节&#xff1a;资源获取】 1. Dvhop定位算法 根据距离矢量和…

#systemverilog# 关于随机约束之 约束块

随机变量的值通过由约束块声明的约束表达式来确定。像任务、函数和变量一样,随机块是类的成员。在一个类中,约束块的名字必须是唯一的。 一 语法定义 声明约束块的语法如下: (1)constraint_identifier是约束块的名字。使用constraint_mode()(参见12.8节)方法,这个名字…

初步认识Java垃圾回收算法

GCRoot指被栈上直接或间接引用的对象&#xff0c;或被本地方法栈直接或间接引用的对象&#xff0c;或被方法区引用的对象。 被引用的对象是不能被删除的。 如果对象跟GCRoot并没有直接或间接相连的关系&#xff0c;那么这些对象就可以被删除了。 标记-清理&#xff1a;将需要删…

C++智能指针使用陷阱、shared_ptr实现

一 智能指针使用概述 1.使用场景 1.1 unique_ptr 1.1.1 概念 std::unique_ptr 是通过指针占有并管理另一对象&#xff0c;并在 unique_ptr 离开作用域时释放该对象的智能指针。 std::unique_ptr 常用于管理对象的生存期&#xff0c;包含&#xff1a; 通过正常退出和经由异…

SpringBoot 实现导出数据 - EasyExcel 导出数据

文章目录 1. EasyExcel 介绍2. 导出2.1 引入依赖2.2 构建测试实体类 3. 设置单元格大小 1. EasyExcel 介绍 EasyExcel 官网介绍 传统操作Excel大多都是利用 Apach POI 进行操作的&#xff0c;但是 POI 框架并不完善&#xff0c;使用过程非常繁琐且有较多的缺陷&#xff1a; 动态…

lesson11 Zigbee MAC地址通信

目录 Zigbee MAC地址通信 前言 查看MAC地址&#xff08;含组网过程抓包分析&#xff09; 方法1&#xff1a;通过dongle抓包查看MAC地址 方法2&#xff1a;仿真调试查看MAC 实验过程 实现步骤 实验效果 出错分析 最终现象 结果分析 Zigbee MAC地址通信 前言 1、Zig…

Python中类的变量,一个下划线与两个下划线的区别

形似 功能__xx这是私有变量&#xff0c; 只有内部可以访问&#xff0c;外部不可以访问。但是也不是一定不可以访问&#xff0c;只要以 _类名__xx样式就可以访问 。但最好不要这样做&#xff0c;养成良好编程习惯_x这是实例变量&#xff0c;可以访问&#xff0c;但是不要轻…

STM32MP157-正点原子第六章tf-a使用编译错误

原因&#xff1a;交叉编译工具链选择错误 亲测&#xff1a; gcc-arm-10.3-2021.07-x86_64-arm-none-linux-gnueabihf.tar.xz 和 gcc-arm-11.2-2022.02-x86_64-arm-none-linux-gnueabihf.tar.xz 可以成功编译 下载网址https://mirrors.tuna.tsinghua.edu.cn/armbian-relea…

全国各城市交通运输邮电业本地电话用户(1999-2020年)

本数据展示了全国各城市的本地电话用户数量。通过对这些数量的分析&#xff0c;可以了解全国各城市通信设施建设的发展情况、人口密度以及工业经济的发展程度等方面的信息。此数据不仅可供政府部门制定信息技术政策&#xff0c;还可以为企业投资提供重要参考。同时&#xff0c;…

Leetcode-每日一题【382.链表随机结点】

题目 给你一个单链表,随机选择链表的一个节点,并返回相应的节点值。每个节点被选中的概率一样 。 实现 Solution 类&#xff1a; Solution(ListNode head) 使用整数数组初始化对象。int getRandom() 从链表中随机选择一个节点并返回该节点的值。链表中所有节点被选中的概率相…

网络空间安全专业未来的发展前景以及薪资待遇如何?

不管是考虑未来报读专业的准大学生&#xff0c;还是初入职场的实习生&#xff0c;亦或是想要跳槽转岗的职场人&#xff0c;当我们开始选择一份工作时&#xff0c;本质上都在考虑以下三个问题&#xff1a; 这份工作的收入水平如何&#xff1b;这份工作有没有发展前景&#xff1…

基于卷积神经网络的目标分类案例

文章目录 一、卷积神经网络二、环境配置及数据集准备三、猫狗数据分类建模1、猫狗图像预处理2、猫狗分类的实例——基准模型3、基准模型的调整 一、卷积神经网络 卷积神经网络&#xff08;Convolutional Neural Networks, CNN 是一类包含卷积计算且具有深度结构的前馈神经网络…

HashMap源码分析

文章目录 1、put方法流程2 、扩容机制3 、get方法 分析源码我们一般从三个方面入手&#xff1a; 常见属性&#xff08;成员变量&#xff09;构造方法关键方法 下面分析一下HashMap源码&#xff1a; 首先常见属性有&#xff1a; DEFAULT_INITIAL_CAPACITY 1 << 4; // a…

二叉树进阶——搜索二叉树

搜索二叉树 1. 概念2. 二叉搜索树的操作2.1 查找2.2 插入2.3 删除&#xff08;重点&#xff09; 3. 搜索二叉树的应用4. 搜索二叉树的性能分析 1. 概念 二叉搜索树又称二叉排序树&#xff0c;它或者是一棵空树&#xff0c;或者是具有以下性质的二叉树: 若它的左子树不为空&am…

《项目实战》构建前后端一体化项目查询CSDN博客Top100文章质量分

系列文章目录 构建前后端一体化项目查询CSDN博客Top100文章质量分 文章目录 系列文章目录前言1、搭建后端框架1.1、 创建RestFull风格接口1.2、创建获取数据服务1.2.1、在个人博客页&#xff0c;找到获取全部博文的路径&#xff08;页面-> network->找到加载博文的地址&…

C# ---委托机制 delegate 和 回调方法 callback

C# --- 委托机制 delegate 和 回调 callback 什么是委托机制委托机制的优点C# 中的Action 和 Func委托机制的主要用处 --- 回调 Callback 什么是委托机制 委托机制相当于C语言中的函数指针, 将一个方法的reference传入另外一个方法中 Example //创建一个方法 //创建一个委托 …

青少年机器人技术一级考试备考重点(二):基础结构与力的基础

随着机器人技术的飞速发展&#xff0c;越来越多的青少年开始关注并参与其中。青少年机器人技术考试作为一项评估学生机器人技术水平的重要考试&#xff0c;备受广大青少年和家长的关注。为了更好地备战青少年机器人技术一级考试&#xff0c;了解考试的学习要点和备考重点是非常…

设计师简历范文

设计师简历范文一&#xff1a; 姓名&#xff1a; 目前所在&#xff1a; 天河区 年  龄&#xff1a; 26 户口所在&#xff1a; 湖南 国  籍&#xff1a; 中国 婚姻状况&#xff1a; 未婚 民  族&#xff1a; 汉族 身  高&#xff1a; 170 cm 体  重&#xff1a; 65 kg…

大学期间,这些证书你考过了吗

目录 一、概览 1、英语方面 第二外语 2、专业资格证书 3、教师资格证 4、普通话证书 5、财务类证书 6、法律职业资格证 7、有备无患的证书 8、技能类证书-驾照 9、发表论文、专利证书、出专业书 10、竞赛类 11、其他 二、写在最后 一、概览 1、英语方面 第二外语 …

Spring AOP讲解及实例

Aop面向切面编程 文章目录 Aop面向切面编程什么是AOPAOP术语Spring AOP 的使用导入依赖编写切面类切面定义语法小细节输出日志成功 什么是AOP AOP&#xff1a;&#xff08;Aspect Oriented Programming&#xff09;面向切面编程&#xff0c;和OOP&#xff08;Object Oriented …