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的值设置为窗口的高度

实现通过滑动条修改窗口大小

实现通过自定义快捷键操控滑动条

在构造函数创建快捷键进行绑定,头文件进行声明槽函数

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

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

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

相关文章

【k8s系列1】一主两从结构的环境准备

环境准备 虚拟机软件准备及安装,这里就不详细展开了,可以看文章:【一、虚拟机vmware安装】 linux环境准备及下载,下载镜像centOS7.9,以前也有写过这个步骤的文章,可以看:【二、安装centOS】 开始进入正题…

【C++类和数据抽象】类的作用域

目录 一、类的作用域基本概念 1.1 什么是类的作用域 1.2 作用域层次体系 1.3 类作用域的特点 1.4 基本访问规则 二、访问控制三剑客 2.1 public:开放接口 2.2 private:数据封装 2.3 protected:继承通道 2.4 跨作用域访问示例 三…

opencv图片颜色识别,颜色的替换

图片颜色识别 1. RGB颜色空间2. 颜色加法2.1使用numpy对图像进行加法2.2使用opencv加法(cv2.add) 3 颜色加权加法(cv2.addWeighted())4. HSV颜色空间5. 制作掩膜4. 与运算(cv2.bitwise_and)5.颜色的替换7 R…

ADC数据不稳定的解决方案

问题如图: 解决方案:上图第一个通道后来接入GND,就稳定了 上图第一个通道后来接入VCC,就稳定了

Spark(18)Yarn-概述

Hadoop三大核心组件:HDFS、MapReduce和YARN 一)Yarn的概念 YARN(Yet Another Resource Negotiator,另一种资源协调者)是一个通用资源管理系统和调度平台,可为上层应用提供统一的资源管理和调度。它的引入为集群在利用率,资源统一管…

Flowith AI,解锁下一代「知识交易市场」

前言 最近几周自媒体号都在疯狂推Manus,看了几篇测评后,突然在某个时间节点,在特工的文章下,发现了很小众的Flowith。 被这段评论给心动到,于是先去注册了下账号。一翻探索过后,发现比我想象中要有趣的多&…

Maxscript调用Newtonsoft.Json解析Json

Maxscript调用Newtonsoft.Json解析Json_newtonsoft.json maxscript-CSDN博客

搭建用友U9Cloud ERP及UAP IDE环境

应用环境 Microsoft Windows 10.0.19045.5487 x64 专业工作站版 22H2Internet Information Services - 10.0.19041.4522Microsoft SQL Server 2019 - 15.0.2130.3 (X64)Microsoft SQL Server Reporing Services 2019 - 15.0.9218.715SQL Server Management Studio -18.6 laster…

github新建一个远程仓库并添加了README.md,本地git仓库无法push

1.本地git仓库与远程仓库绑定 2.push时报错,本地的 main 分支落后于远程仓库的 main 分支(即远程有更新,但你本地没有),需要拉取远程的仓库--->在merge合并(解决冲突)--->push 3.但是git …

我用deepseek做了一个提取压缩文件夹下pdf和word文件工具

由于最近需要把大量的压缩文件的pdf和word文件统一复制到一个文件夹中。 我们一般正常操作方式的是把一个压缩文件一个一个解压,然后在把一个的解压好的文件夹下文件复制到另外一个文件夹中。 这个也需太繁琐了,从以往统计的需要花费两个小时间&#x…

企业网络安全合规风险高、运营不稳定,要怎么解决?

在数字化浪潮中,数据已然成为企业的核心资产,其重要性不言而喻。然而,数据泄露风险也时刻威胁着企业的生存与发展。不少企业在历经数据泄露的惨痛教训后,纷纷选择部署数据防泄露系统。那么,企业部署数据防泄露系统前后…

C#—Lazy<T> 类型(延迟初始化/懒加载模式)

C# 的 Lazy<T> 类型 Lazy<T> 是 C# 中的一个类&#xff0c;用于实现延迟初始化&#xff08;懒加载&#xff09;模式。它提供了一种线程安全的方式来延迟创建大型或资源密集型对象&#xff0c;直到第一次实际需要时才进行初始化。 主要特点 延迟初始化&#xff1a…

C++之unordered封装

目录 一、哈希表的修改 1.1、哈希表节点结构 1.2、迭代器 1.3、哈希表结构 1.4、完整代码 二、unordered_map的实现 二、unordered_set的实现 一、哈希表的修改 注意&#xff1a;这里我们使用哈希桶来封装unordered_map和unordered_set。 1.1、哈希表节点结构 templa…

[渗透测试]渗透测试靶场docker搭建 — —全集

[渗透测试]渗透测试靶场docker搭建 — —全集 对于初学者来说&#xff0c;仅仅了解漏洞原理是不够的&#xff0c;还需要进行实操。对于公网上的服务我们肯定不能轻易验证某些漏洞&#xff0c;否则可能触犯法律。这是就需要用到靶场。 本文主要给大家介绍几种常见漏洞对应的靶场…

Docker如何更换镜像源提高拉取速度

在国内&#xff0c;由于网络政策和限制&#xff0c;直接访问DockerHub速度很慢&#xff0c;尤其是在拉取大型镜像时。为了解决这个问题&#xff0c;常用的方法就是更换镜像源。本文将详细介绍如何更换Docker镜像源&#xff0c;并提供当前可用的镜像源。 换源方法 方法1&#x…

第一篇:从哲学到管理——实践论与矛盾论如何重塑企业思维

引言&#xff1a;当革命哲学照亮现代商业 1937年&#xff0c;毛泽东在战火中写就的《实践论》《矛盾论》&#xff0c;为中国共产党提供了认识世界的方法论。今天&#xff0c;这两部著作正成为企业破解管理困局的“思维操作系统”&#xff1a; 战略模糊&#xff1a;据Gartner统…

云原生--基础篇-2--云计算概述(云计算是云原生的基础,IaaS、PaaS和SaaS服务模型)

1、云计算概念 云计算是一种通过互联网提供计算资源&#xff08;包括服务器、存储、数据库、网络、软件等&#xff09;和服务的技术模式。用户无需拥有和维护物理硬件&#xff0c;而是可以根据需要租用这些资源&#xff0c;并按使用量付费。 2、云计算特点 &#xff08;1&am…

一级滤波器设计:IL_cmdm > 80dB

目录 背景 目的 操作 仿真测试 搭建仿真模型 插入损耗测试 优化设计后重新测试 思考 背景 在选购共模电感时&#xff0c;规格书中通常会提供插损曲线或者阻抗-频率曲线&#xff0c;但这些数据都是在特定条件下测试获得的。如果将其集中在我们的样机中性能会如何&#…

qt 配置 mysql 驱动问题:Cannot load library qsqlmysql;QMYSQL driver not loaded

项目场景&#xff1a; 环境版本&#xff1a; qt &#xff1a;5.14.2 mysql&#xff1a;8.0 windows&#xff1a;10 提示&#xff1a;qt 配置 mysql 驱动&#xff1a; 项目场景&#xff1a;qt 配置 mysql 驱动 问题描述 提示&#xff1a;这里描述项目中遇到的问题&#xff1a;…

Kubernetes相关的名词解释Container(16)

什么是Container&#xff1f; 在 Kubernetes 中&#xff0c;Container&#xff08;容器&#xff09; 是一个核心概念&#xff0c;你可以将镜像&#xff08;Image&#xff09;类比为程序的“源代码”&#xff0c;而容器是这段“代码”运行时的进程。例如&#xff0c;一个 nginx…