当前位置: 首页 > news >正文

qt QLineEdit详解

一、概述

QLineEdit 是 Qt 框架中用于创建单行文本输入框的类。它非常适合用于接收用户输入,例如用户名、密码或其他简单的文本信息。它提供了许多有用的编辑功能,支持多种输入模式和文本限制,并支持撤销、重做、剪切、粘贴以及拖放等功能。

二、重要方法

  • QLineEdit(QWidget *parent = nullptr):创建一个 QLineEdit 对象,可以指定父对象。
  • setText(const QString &text):设置输入框中的文本。
  • text() const:返回当前输入框中的文本。
  • clear():清空输入框中的文本。
  • setPlaceholderText(const QString &text):设置占位符文本,提示用户输入内容。
  • setCursorPosition(int position):设置光标在文本中的位置。
  • selectAll():选择输入框中的所有文本。
  • setSelection(int start, int length):选择指定范围的文本。
  • setMaxLength(int length):设置输入框中允许的最大字符长度。
  • setEchoMode(QLineEdit::EchoMode mode):设置回显模式,例如用于密码输入时隐藏文本。
  • setReadOnly(bool readOnly):设置输入框为只读模式。
  • setEnabled(bool enabled):启用或禁用输入框。
  • textChanged(const QString &text):当文本发生变化时发出信号。
  • setInputMask(const QString &inputMask):设置输入掩码。
  • setValidator(const QValidator *v):设置输入验证器。
  • returnPressed():当用户按下回车键时发出信号。
  • editingFinished():当编辑完成(如输入框失去焦点)时发出信号。
  • textChanged(const QString &text):当文本内容改变时发射。
  • textEdited(const QString &text):当用户编辑文本内容时发射。
  • cursorPositionChanged(int, int):当光标位置发生变化时发出此信号,参数为光标改变前后的位置。
  • selectionChanged():当选区发生变化时发出此信号,例如用户选择或取消选择文本时。
#include <QApplication>  
#include <QLineEdit>  
#include <QWidget>  
#include <QFormLayout>  
#include <QVBoxLayout>  
#include <QPushButton>  
#include <QDebug>  class LoginWidget : public QWidget {  Q_OBJECT  public:  LoginWidget(QWidget *parent = nullptr) : QWidget(parent) {  QVBoxLayout *layout = new QVBoxLayout(this);  QFormLayout *formLayout = new QFormLayout();  QLineEdit *usernameEdit = new QLineEdit(this);  QLineEdit *passwordEdit = new QLineEdit(this);  passwordEdit->setEchoMode(QLineEdit::Password);  formLayout->addRow("用户名:", usernameEdit);  formLayout->addRow("密码:", passwordEdit);  layout->addLayout(formLayout);  QPushButton *loginButton = new QPushButton("登录", this);  layout->addWidget(loginButton);  connect(loginButton, &QPushButton::clicked, this, &LoginWidget::onLoginClicked);  }  private slots:  void onLoginClicked() {  // 在这里处理登录逻辑  QLineEdit *usernameEdit = findChild<QLineEdit*>("usernameEdit");  QLineEdit *passwordEdit = findChild<QLineEdit*>("passwordEdit");  qDebug() << "用户名:" << usernameEdit->text();  qDebug() << "密码:" << passwordEdit->text();  }  
};  int main(int argc, char *argv[]) {  QApplication app(argc, argv);  LoginWidget widget;  widget.show();  return app.exec();  
}  

觉得有帮助的话,打赏一下呗。。

           


http://www.mrgr.cn/news/57577.html

相关文章:

  • c++ 堆和堆排序
  • 【Linux 从基础到进阶】系统故障排查思路与实战
  • Excel自带傅里叶分析数据处理——归一化处理
  • 十一、pico+Unity交互开发教程——手指触控交互(Poke Interaction)
  • Python多进程学习与使用:全面指南
  • 高客单价产品,Facebook广告投放应该怎么做?
  • 大模型微调实战:基于 LLaMAFactory 通过 LoRA 微调修改模型自我认知
  • 分组密码填充模式
  • 自闭症学校:儿童成长的崭新希望
  • Spring Boot:植物健康监测的智能管家
  • 请列举四种「等比例自适应矩形」实现方案?
  • API接口在各个领域的发挥着什么样的作用呢
  • 1024程序员日|向改变世界的程序员 致敬!
  • 字符串-04-字符串加解密
  • 最新整理:自动化测试常见面试题
  • fmql之Linux中I2C总线框架
  • 开源模型应用落地-Qwen2-VL-7B-Instruct-vLLM-OpenAI API Client调用
  • 基于RabbitMQ,Redis,Redisson,RocketMQ四种技术实现订单延时关闭功能及其相关优缺点介绍(以12306为主题)
  • Stability.AI 发布 SD3.5 模型,能否逆袭击败 FLUX?如何在ComfyUI中的使用SD3.5?
  • 使用gpt2-medium基座说明模型微调
  • anolis os 8.8 修改kube-proxy的模式为ipvs-kubeadm部署
  • arcgis pro 3.3.1安装教程
  • 重学SpringBoot3-Spring WebFlux之HttpHandler和HttpServer
  • 代码随想录算法训练营第二十五天 | 491.递增子序列 46.全排列 47.全排列Ⅱ
  • LeetCode练习-删除链表的第n个结节
  • Hot100速刷计划day04(10-12)