QT常见输入类控件及其属性
Line Edit
QLineEdit用来表示单行输入框,可以输入一段文本,但是不能换行
核心属性:

核心信号
| 信号 | 说明 |
| void cursorPositionChanged(int old,int new) | 当鼠标移动时发出此型号,old为先前位置,new为新位置 |
| void editingFinished() | 当按返回或回车键时,或行编辑失去焦点时,发出此信号 |
| void returnPressed() | 当返回或回车键按下时发出此信号,如果设置了验证器,必须要验证通过才能触发 |
| void selectionChanged() | 当选中的文本发生改变时,发出此信号 |
| void textChange(const QString &text) | 当QLineEdit中的文本改变时,发出此信号,test是新的文本。代码对文本的修改也能触发此信号。 |
| void textEdited(const QString &text) | 当QLineEdit中的文本改变时,发出此信号,text时新的文本。代码对文本的修改不能触发此信号。 |
例:
实现用户能输入账号,密码及提交
在ui界面创建label进行输入内容提示,创建对应的lineEdit输入框,提交按钮

进行输入框初始化

设置pushButton槽函数

inputMask功能比较有效,只能进行简单的验证
若要实现比较复杂的验证需要使用“正则表达式”
正则表达式,本质上是一个带有特殊字符的字符串,特殊字符用来表示另一个字符串的特征,借助正则表达式来描述一些具有一定特定的字符串
随用随查,无需记忆
例:
在ui界面创建一个lineEdit和pushButton控件

设置提交按钮初始状态

只有当输入字符为合法手机号码时才允许进行提交
创建正则表达式及验证器

通过定义textEdited槽函数实现lindEdit内容发生修改就调用验证器


当输入以1开头,后面跟上10个数字的字符串时,就可以进行pushButton的点击

Text Edit
QTextEdit表示多行输入框,也是一个富文本&markdown编辑器,并且能在内容超出编辑范围时自动提供滚动条
核心属性
| 属性 | 说明 |
| markdown | 输入框持有的内容,支持 markdown格式,能够自动的对 markdown文本进行渲染成html |
| html | 输入框持有的内容支持大部分 htm标签,包括img和table等 |
| placeHolderText | 输入框为空时提示的内容 |
| readOnly | 是否只读 |
| undoRedoEnable | 是否开启undo/redo功能 按下ctrl+z触发undo 按下ctrl+y触发redo |
| autoFormating | 开启自动格式化 |
| tabstopWidth | 按下缩进占多少空间 |
| overwirteMode | 是否开启覆盖写模式 |
| acceptRichText | 是否结束富文本内容 |
| verticalScrollBarPolicy | 垂直方向滚动条的出现策略 Qt::ScorllBarAsNeeded:根据内容自动决定是否需要滚动条。这种默认值 Qt::ScorllBarAlwaysOff:总是关闭滚动条 Qt::ScorllBarAlwaysOn:总是显示滚动条 |
| horizontalScrollBarPolicy | 水平滚动条的出现策略 Qt::ScrollBarAsNeeded:根据内容自动决定是否需要滚动条。这是默认值 Qt::ScorllBarAlwaysOff:总是关闭滚动条 Qt::ScrollBarAlwaysOn:总数显示滚动条 |
核心信号:
| 信号 | 说明 |
| textChanged() | 文本内容改变时触发 |
| selectionChanged() | 选中范围改变时触发 |
| cursorPositionChanged() | 光标移动时触发 |
| undoAvailable(bool) | 可以进行undo操作时触发 |
| redoAvailable(bool) | 可以进行redo操作时触发 |
| copyAvaiable(bool) | 文本被选中/取消选中时触发 |
例:
在ui界面创建一个textEdit用于接收输入内容,label用于显示textEdit内容

转到textEdit的textChanged槽函数


Combo Box
QComboBox表示下拉框
核心属性
| 属性 | 说明 |
| currentText | 当前选中的文本 |
| currentIndex | 当前选中的条目下标 从0开始计算,如果当前没有条目被选中,值为-1 |
| editable | 是否允许修改 设置为true时,QComboBox的行就类似于QLineEdit,也可以设置validator |
| iconSize | 下拉框图标大小 |
| maxCount | 最多允许有多少个条目 |
核心接口
| 接口 | 说明 |
| addItem(const QString&) | 添加一个条目 |
| currentIndex() | 获取当前条目的下标 |
| currentText() | 获取当前条目的文本内容 |
核心信号
| 信号 | 说明 |
| activated(int) activated(QString & text) | 当用户选中了一个选项时发出 这个时候相当于用户点开下拉框,并且鼠标划过某个选项 此时还没有确认做出选择 |
| currentIndexChanged(int) currentIndexChanged(const QString & text) | 当前选项改变时发出 此时用户已经明确的选择了一个选项 用户操作或者通过程序操作都会触发这个信号 |
| editTextChanged(const QString & text) | 当编辑框中的文本改变时发出 (editable为true时有效) |
例:
通过ComboBox模拟点餐
在ui界面创建两个label和两个ComboBox

在构造函数中初始化ComboBox内容


在ui界面创建提交按钮pushButton

转到pushButton的clicked槽函数

能顺利获取到ComboBox内容
实现通过文件导入ComboBox内容
在ui界面创建一个label和ComboBox

在电脑创建一个txt文件,在其内输入不同专业

在构造函数读取文件内容

从而实现将文件内容设置为ComboBox选项

Spin Box
使用QSpinBox或者QDoubleSpinBox表示“微调框”,它时带有按钮的输入框,可以用来输入整数/浮点数,通过点击按钮来修改数值大小
如:

核心属性
| 属性 | 说明 |
| value | 存储的数值 |
| singleStep | 每次调整的“步长”,按下一次按钮数据变化多少 |
| displayInteger | 数字的进制,例如displayInteger设为10,则是按十进制表示,设为2,则为2进制表示 |
| minimum | 最小值 |
| maximum | 最大值 |
| suffix | 后缀 |
| prefix | 前缀 |
| wrapping | 是否允许换行 |
| frame | 是否带边框 |
| alignment | 文字对齐方式 |
| readOnly | 是否允许修改 |
| buttonSymbol | 按钮上的图标 UpDownArrows:上箭头模形式 PlusMinus:加减号形式 NoButtons:没有按钮 |
| accelerated | 按下按钮时是否为快速调整模式 |
| correctionMode | 输入有误时如何修正 QAbstractSpinBox::CorrectToPreviousValue:如果用户输入了一个无效的值,那么SpinBox会恢复为上一个有效值 QAbstractSpinBox::CorrectToNearesValue: 如果用户输入了一个无效的值,SpinBox会恢复为最接近的有效值。 |
| keyboardTrack | 是否开启键盘跟踪 设为true,每次在输入框输入一个数字,都会触发一次valueChanged()和 textChanged()信号 设为false,只有在最终按下enter或者输 入框失去焦点,才会触发valueChanged() 和textChanged()信号 |
核心信号
| 信号 | 说明 |
| textChanged(QString) | 微调框的文本发生改变时会触发 参数QString带有前缀和后缀 |
| valueChanged(int) | 微调框的文本发生改变时会触发 参数int,表示当前的数值 |
例:
在ui界面创建两个label,一个SpinBox,一个DoubleSpinBox

再创建一个pushButton
在构造函数对得分范围进行初始化

转到pushButton的槽函数,将得分用qDebug进行输出

Date Edit 和Time Edit
使用DateEdit作为日期的微调框
使用TimeEdit作为时间的微调框
使用Date/Time Edit作为时间日期的微调框
三个控件使用方法类似

DateTime Edit核心属性
| 属性 | 说明 |
| dateTime | 时间日期的值,如2000/1/1 0:00:0 |
| date | 单纯日期的值,如2000/1/1 |
| time | 单纯时间的值,如0:00:00 |
| displayFormat | 时间日期格式,如yyyy/M/d H:mm y表示年份 M表示月份 d表示日期 H表示小时 m表示分钟 s表示秒 不同语言/库的设定规则时是不同的,随用随查 |
| minimumDateTime | 最小时间日期 |
| maximumDateTime | 最大时间日期 |
| timeSpec | Qt::LocalTime:显示本地时间 Qt::UTC:显示协调世界时 Qt::OffsetFromUTC:显示相对于UTC的偏移量(时差) |
核心信号
| 信号 | 说明 |
| dateChanged(QDate) | 日期改变时触发 |
| timeChanged(QTime) | 时间改变时触发 |
| dataTimeChanged(QDateTime) | 时间日期任意一个改变时触发 |
例:
实现一个时间计算,计算两个时间中间的间隔时多少天/多少小时
在ui界面创建两个datetime Edit,一个pushButton,一个label

转到pushButton的clicked槽函数

但是此时代码存在逻辑错误,若时间日期相隔几个小时,但不属于同一天,进行计算时就会发生错误
如:

两日期相差6小时,却计算出1天6小时
不使用daysto计算日期差,通过秒数插值求日期

Dial
使用QDial表示一个旋钮

核心属性
| 属性 | 说明 |
| value | 持有的数值 |
| minimum | 最小值 |
| maximum | 最大值 |
| singleStep | 按下方向键的时候改变的步长 |
| pagesStrp | 按下pageUp/pageDown的时候改变的步长 |
| sliderPosition | 界面上旋钮显示的初始位置 |
| tracking | 外观是否会跟踪数值变化 默认值为true,一般无需修改 |
| wrapping | 是否允许循环调整 即数值如果超过最大值,是否允许回到最小值 |
| notchesVisble | 是否显示刻度线 |
| notchTarget | 刻度线之间的相对位置 数字越大,刻度线越稀疏 |
例:
通过旋钮控制窗口不透明度opcity
在ui界面创建一个旋钮

在构造函数进行初始化

转到dial的valueChanged槽函数


Slider
使用Slider表示一个滑动条
如:

核心属性
| 属性 | 说明 |
| value | 持有的数值 |
| minimum | 最小值 |
| maximum | 最大值 |
| singleStep | 按下方向键的时候改变的步长 |
| pagesStrp | 按下pageUp/pageDown的时候改变的步长 |
| sliderPosition | 滑动条显示的初始位置 |
| tracking | 外观是否会跟踪数值变化, 默认值为true,无需修改 |
| orientation | 滑动条的方向是水平还是垂直 |
| invertedAppearance | 是否要翻转滑动条的方向 |
| tickPosition | 刻度的位置 |
| tickInterval | 刻度的密集程度 |
核心信号
| 信号 | 说明 |
| valueChanged(int) | 数值改变时触发 |
| rangeChanged(int,int) | 范围变化时触发 |
例:
通过两个不同方向的滑动条分别控制窗口宽度和高度

在构造函数翻转垂直方向滑动条(Vertical Silder)的方向

对滑动条进行初始化,将滑动条初始值设置为窗口的高度和宽度

转到滑动条的valueChanged槽函数,实现将horizentalSlider的值设置为窗口的宽度,将verticalSlider的值设置为窗口的高度

实现通过滑动条修改窗口大小
实现通过自定义快捷键操控滑动条
在构造函数创建快捷键进行绑定,头文件进行声明槽函数


实现各个按键的槽函数,来通过快捷键发出信号,调用槽函数,在槽函数内对滑动条的值进行修改,滑动条值发生修改,发送信号,调用槽函数,修改窗口大小

相关文章:
QT常见输入类控件及其属性
Line Edit QLineEdit用来表示单行输入框,可以输入一段文本,但是不能换行 核心属性: 核心信号 信号 说明 void cursorPositionChanged(int old,int new) 当鼠标移动时发出此型号,old为先前位置,new为新位置 void …...
Few-shot medical image segmentation with high-fidelity prototypes 论文总结
题目:Few-shot medical image segmentation with high-fidelity prototypes(高精确原型) 论文:Few-shot medical image segmentation with high-fidelity prototypes - ScienceDirect 源码:https://github.com/tntek/D…...
DBA工作常见问题整理
MVCC机制: PostgreSQL的多版本并发控制(MVCC)是其核心特性之一,它允许数据库在高并发环境下保持高性能的同时提供事务隔离。 MVCC通过维护数据的多个版本实现: 读操作不阻塞写操作写操作不阻塞读操作避免使用锁实现并发控制 PostgreSQL的MVCC特点 写时…...
深入理解Java包装类:自动装箱拆箱与缓存池机制
深入理解Java包装类:自动装箱拆箱与缓存池机制 对象包装器 Java中的数据类型可以分为两类:基本类型和引用类型。作为一门面向对象编程语言, 一切皆对象是Java语言的设计理念之一。但基本类型不是对象,无法直接参与面向对象操作&…...
如何使用Node-RED采集西门子PLC数据通过MQTT协议实现数据交互并WEB组态显示
需求概述 本章节主要实现一个流程:使用纵横智控的EG网关通过Node-red(可视化编程)采集PLC数据,并通过MQTT协议和VISION(WEB组态)实现数据交互。 以采集西门子PLC为例,要采集的PLC的IP、端口和点…...
【cocos creator 3.x】速通3d模型导入, 模型创建,阴影,材质使用,模型贴图绑定
1、右键创建平面,立方体 2、点击场景根节点,shadows勾选enabled3、点击灯光,shadow enabled勾选 4、点击模型,勾选接收阴影,投射阴影(按照需要勾选) 5、材质创建 6、选中节点,找…...
批量创建OpenStack实例
在Linux终端实现批量创建OpenStack实例,支持支持统计、并发创建、安全确认、重试机制、日志。 #!/bin/bash # # 增强版OpenStack实例创建脚本(修复日志功能) # 功能:支持统计、并发创建、安全确认、重试机制 # 更新日期…...
常用的 SQL 语句分类整理
以下是常用的 SQL 语句分类整理,覆盖数据查询、操作、表管理和高级功能,适用于大多数关系型数据库(如 MySQL、PostgreSQL、SQL Server): 目录 一、数据查询(DQL) 1. 基础查…...
驱动开发硬核特训 · Day 15:电源管理核心知识与实战解析
在嵌入式系统中,电源管理(Power Management)并不是“可选项”,而是实际部署中影响系统稳定性、功耗、安全性的重要一环。今天我们将以 Linux 电源管理框架 为基础,从理论结构、内核架构,再到典型驱动实战&a…...
【零基础】基于DeepSeek-R1与Qwen2.5Max的行业洞察自动化平台
自动生成行业报告,通过调用两个不同的大模型(DeepSeek 和 Qwen),完成从行业趋势分析到结构化报告生成的全过程。 完整代码:https://mp.weixin.qq.com/s/6pHi_aIDBcJKw1U61n1uUg 🧠 1. 整体目的与功能 该脚本实现了一个名为 ReportGenerator 的类,用于: 调用 DeepSe…...
Web前端 (CSS篇)
什么是CSS? css(Cascading Style Sheets)是层叠样式表或级联样式表,是一组设置规则,用于控制web页面外观。 为什么使用CSS? CSS 用于定义网页的样式,包括针对不同设备和屏幕尺寸的设计和布局。 CSS 实例 body {background-col…...
C 语言联合与枚举:自定义类型的核心解析
目录 1.联合体 1.1联合体的声明与创建 1.2联合体在内存中的存储 1.3相同成员的结构体与内存比较 1.4联合体内存空间大小的计算 1.5联合体的应用 2.枚举类型 2.1枚举变量的声明 2.2枚举变量的优点 2.3枚举的使用 上篇博客中,我们通过学习了解了C语言中一种自…...
基于Canal+Spring Boot+Kafka的MySQL数据变更实时监听实战指南
前期知识背景 binlog 什么是binlog 它记录了所有的DDL和DML(除 了数据查询语句)语句,以事件形式记录,还包含语句所执行的消耗的时间,MySQL 的二进制日志是事务安全型的。一般来说开启二进制日志大概会有1%的性能损耗。 binlog分类 MySQL Bi…...
MySQL运维三部曲初级篇:从零开始打造稳定高效的数据库环境
文章目录 一、服务器选型——给数据库一个舒适的家二、系统调优——打造高性能跑道三、MySQL配置——让数据库火力全开四、监控体系——数据库的体检中心五、备份恢复——数据安全的最后防线六、主从复制——数据同步的艺术七、安全加固——守护数据长城 引言:从小白…...
golang context源码
解析 context结构 Deadline:返回 context 的过期时间; Done:返回 context 中的 channel; Err:返回错误; Value:返回 context 中的对应 key 的值. type Context interface {Deadline() (deadl…...
【MySQL】MySQL的基础语法及其语句的介绍
1、基础语法 mysql -h【主机名】 -u【用户名】 -p //登录MySQL exit或quit; //退出MySQL show database; //查看MySQL下的所有数据库 use 【数据库名】; //进入数据库 show tables; //查看数据库下的所有表名 *MySQL的启动和关闭 &am…...
大模型应用开发自学笔记
理论学习地址: https://zh.d2l.ai/chapter_linear-networks/index.html autodl学术加速: source /etc/network_turboconda常见操作: 删除: conda remove --name myenv --all -y导出: conda env export > environment.yml…...
Spring能够有效地解决单例Bean之间的循环依赖问题
在Spring框架中,earlySingletonObjects和singletonObjects是两个与Bean实例化过程密切相关的概念,它们都存储在DefaultSingletonBeanRegistry类中。这两个概念主要用于Spring的依赖注入机制,特别是针对单例Bean的创建过程。 singletonObject…...
【计算机视觉】三维视觉项目 - Colmap二维图像重建三维场景
COLMAP 3D重建 项目概述项目功能项目运行方式1. 环境准备2. 编译 COLMAP3. 数据准备4. 运行 COLMAP 常见问题及解决方法1. **编译问题**2. **运行问题**3. **数据问题** 项目实战建议项目参考文献 项目概述 COLMAP 是一个开源的三维重建软件,专注于 Structure-from…...
Linux 离线部署 Docker 18.06.3 终极指南(附一键安装卸载脚本)
Linux 离线部署 Docker 18.06.3 终极指南(附一键安装/卸载脚本) 摘要:本文针对无外网环境的 Linux 服务器,提供基于二进制包的 Docker 18.06.3 离线安装全流程指南。包含自动化脚本设计、服务配置优化及安全卸载方案,…...
ALSA架构学习2(驱动MAX98357A)
1 前言和环境 之前其实写过两篇,一篇是讲ALSA,一篇是I2S。 ALSA架构学习1(框架)_alsa框架学习-CSDN博客 总线学习5--I2S_max98357接喇叭教程-CSDN博客 在ALSA那篇的结尾,也提了几个小练习。比如: ### 4…...
数据结构*集合框架顺序表-ArrayList
集合框架 常见的集合框架 什么是顺序表 顺序表是一种线性表数据结构,它借助一组连续的存储单元来依次存储线性表中的数据元素。一般情况下采用数组存储。 在数组上完成数据的增删查改。 自定义简易版的顺序表 代码展示: public interface IArray…...
VMware Workstation 保姆级 Linux(CentOS) 创建教程(附 iso)
文章目录 一、下载二、创建 一、下载 CentOS-7.9-x86_64-DVD-2009.iso 二、创建 VMware Workstation 保姆级安装教程(附安装包) VMware Workstation 保姆级安装教程(附安装包) VMware Workstation 保姆级安装教程(附安装包)...
51、项⽬中的权限管理怎么实现的
答:权限管理有三个很重要的模块; (1)⽤⼾模块:可以给⽤⼾分配不同的⻆⾊ (2)⻆⾊模块:可以授于⽤⼾不同的⻆⾊,不同的⻆⾊有不同权限 (3)权限模块:⽤于管理系统中的权限接⼝,为⻆⾊提供对…...
软考-信息系统项目管理师-2 信息技术发展
总结思维导图 云计算(掌握) (3)多租户和访问控制管理访问控制管理是云计算应用的核心问题之一云计算访问控制的研究主要集中在云计算访问控制模型、基于ABE密码体制的云计算访问控制、云中多租户及虚拟化访问控制研究云中多租户及虚拟化访问控制是云计算的典型特征。 大数据(…...
Spring Boot JPA 开发之Not an entity血案
项目状况介绍 项目环境 JDK 21Spring Boot 3.4.3Hibernate: 6.6.13.Final项目描述 因为是微服务架构,项目层级如下 project-parent project-com project-A … project-X 其中: project-parent定义依赖库的版本project-com 定义了一些公用的方法和配置,包括持久层的配置。…...
HTMLCSS实现轮播图效果
这段代码实现了一个具有自动轮播、手动切换功能的图片轮播图,并且配有指示器(小圆点)来显示当前图片位置。轮播图可通过左右箭头按钮进行手动切换,也能自动定时切换,当鼠标悬停在轮播图上时,自动轮播会暂停…...
嵌入式学习——opencv图像库编程
环境配置 OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉和图像处理库,广泛用于各种计算机视觉任务,如图像处理、视频分析、人脸识别、物体检测、机器学习等。它提供了丰富的函数和工具,用于处理…...
【每日八股】复习 MySQL Day1:事务
文章目录 复习 MySQL Day1:事务MySQL 事务的四大特性?并发事务会出现什么问题?MySQL 事务的隔离级别?不同事务隔离级别下会发生什么问题?MVCC 的实现原理?核心数据结构版本链构建示例可见性判断算法MVCC 可…...
java 设计模式之代理模式
简介 代理模式:使用代理类来增强目标类的功能。在代码结构上,代理对象持有目标对象,通过代理对象访问目标对象,这样可以在不改变目标对象的前提下增加额外的功能,如权限校验、缓存等 代理模式内部的角色:…...
