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

Qt 窗口部件(2)输入部件详解

文章目录

    • 一、Input Widgets定义
    • 二、QLineEdit
      • 1.定义
      • 2.常用属性
        • 2.1 echoMode 类型
      • 3.常用信号
      • 4.输入验证与格式化
        • 4.1 正则表达式验证
        • 4.2 整数 / 浮点数验证
        • 4.3 自定义输入掩码
    • 三、QSpinBox
      • 1.定义
      • 2.常用属性
      • 3.常用信号
    • 四、QDoubleSpinBox
      • 1.定义
      • 2.与QSpinBox区别
    • 五、QComboBox
      • 1. 两种模式
      • 2.常用属性
      • 3.常用信号

一、Input Widgets定义

Input Widgets 是 Qt 中用于用户输入的组件,例如:

  • QLineEdit(单行文本输入)
  • QTextEdit(多行富文本编辑)
  • QSpinBox/QDoubleSpinBox(数值输入框)
  • QComboBox(下拉选择框)
  • QSlider/QDial(滑块和旋钮)
  • QCheckBox/QRadioButton(复选框和单选按钮)

二、QLineEdit

1.定义

QLineEdit 主要用于接收用户的单行文本输入,具备文本显示、编辑、验证和格式化等功能。

2.常用属性

  • text() 获取/设置文本内容
  • placeholderText 占位文本(输入框提示)
  • maxLength 最大输入长度
  • echoMode 文本显示模式
  • readOnly 只读模式
  • alignment 文本对齐方式
2.1 echoMode 类型
  • QLineEdit::Normal(默认模式,正常显示输入的文本);
  • QLineEdit::Password(显示密码掩码,如圆点●,实际文本被隐藏,常用于密码输入场景);
  • QLineEdit::NoEcho(完全不显示任何内容,但实际文本被存储,这种模式较少使用);
  • QLineEdit::PasswordEchoOnEdit(编辑时显示实际文本,短暂延迟后变为密码掩码,在一定程度上兼顾了用户输入的便利性和密码的安全性)。

3.常用信号

  • textChanged(text) 文本内容改变时
  • textEdited(text) 用户手动编辑文本时
  • returnPressed() 用户按下回车键时
  • editingFinished() 编辑完成时(失去焦点或按回车)
  • selectionChanged() 选中文本发生变化时

4.输入验证与格式化

4.1 正则表达式验证

使用QRegExpValidator限制输入格式,例如只允许输入数字和字母

4.2 整数 / 浮点数验证

使用QIntValidator或QDoubleValidator

4.3 自定义输入掩码

使用setInputMask()限制输入格式

QLineEdit *phoneEdit = new QLineEdit(&window);
phoneEdit->setInputMask("999 9999 9999;_");

1、格式说明:占位符9表示只能输入数字,分号;后的_表示未输入位置的占位符(若不指定占位符,默认使用空格)。

2、获取实际文本。
使用

http://www.xdnf.cn/news/5366.html

相关文章:

  • 深入解析STM32中断机制:从原理到外部中断实战
  • 力扣70题解
  • 二叉搜索树讲解
  • [思维模式-25]:《本质思考力》-6- 马克思主义哲学的五对基本哲学范畴,以及在计算机领域的体现
  • 用c语言实现——一个交互式的中序线索二叉树系统,支持用户动态构建、线索化、遍历和查询功能
  • 理性地倾听与表达:检索算法的语言学改进
  • 《P1226 【模板】快速幂》
  • 开疆智能Profinet转canopen网关连接易福门(IFM)传感器配置案例
  • QB/T 1649-2024 聚苯乙烯泡沫塑料包装材料检测
  • 大模型MCP更高效的通信:StreamableHTTP协议
  • 欧拉计划 Project Euler 69(欧拉总计函数与最大值)题解
  • 炫酷粒子系统动画实战:Matplotlib实现银河漩涡效果
  • SierraNet M1288网络损伤功能显著助力GPU互联网络的测试验证,包含包喷洒,LLR等复杂特性的验证测试
  • GMS 与非 GMS:有何区别?
  • Java基础:代理
  • KNOWLEDGE-BASED SYSTEMS(KBS期刊)投稿经验分享
  • # 深度学习实操 附录B 深入解析 tensorflow 自动微分
  • 纯惯性导航、非线性最小二乘法纯uwb测距导航定位、惯性uwb松组合导航、惯性uwb紧组合导航,四种方法对比
  • 圆角边框 盒子阴影 文字阴影
  • Linux进程间通信(四)之补充【日志】
  • PCB设计实践(十三)PCB设计中差分线间距与线宽设置的深度解析
  • 蓝牙GAP协议概述
  • AI赋能研究工作:我的深度学习助手使用体验(DeepResearch)
  • 认识 Linux 内存构成:Linux 内存调优之内存分配机制和换页行为认知
  • ERP学习(二):用友软件产品之系统管理
  • 学习黑客5 分钟深入浅出理解SCP
  • 【从零实现JsonRpc框架#3】线程模型与性能优化
  • 《设计数据密集型应用》——阅读小记
  • JAVA——抽象类和接口的区别
  • 【Linux基础】系统监控和进程管理指令