旋转框/微调按钮的基类--QAbstractSpinBox 类

news2024/11/18 20:01:22

1、 QAbstractSpinBox 类是 QWidget 类的直接子类,虽然该类不是抽象类,但该类并未提供实
际的功能,仅为旋转框提供了一些外观的形式以及需要子类实现了成员, 也就是说点击微调按钮的上/下按钮,不会使其中的数值有变化。 实际的功能该类的子类提供的,用户也可继承该类实现自定义的功能
2、旋转框是由微调按钮(用于调整值) 和 行编辑器(用于显示值)组成的(见右图)

                                
3、步长:是指当使用微调按钮的箭头增加/减少值时,该值将会增加/减少步长的数量,比如
若当前值为 10,步长为 2,则使用向上箭头调整其值时,该值将增长为 12。
3、 QAbstractSpinBox 类中的属性

QAbstractSpinBox 类(属性速查表)
属性名说明属性名说明
accelerated是否加快调整速度keyboardTracking是否启用键盘跟踪
acceptableInput是否符合验证的要求readOnly是否为只读
alignment对齐方式showGroupSeparator是否显示千位分隔符
buttonSymbols微调按钮的形式specialValueText设置和返回特殊值文本
correctionMode中间值的更正模式text获取旋转框中的文本(包括前/后缀)
frame是否绘制默认边框wrapping调整值时是否可以循环

①、 accelerated: bool 访问函数: bool isAccelerated() const; void setAccelerated(bool);
此属性用于描述当按下旋转框的“向上/向下”按钮一段时间不放时是否会加快调整
旋转框中数值增加/减少的速度。 默认为 false。


②、 acceptableInput: bool 访问函数: bool hasAcceptableInput() const;
此属性用于获取输入的值是否满足当前验证器的要求。


③、 alignmen: Qt::Alignment
访问函数: Qt::Alignment alignment() const; void setAlignment(Qt::Alignment);
对齐方式,默认值为 Qt::AlignLeft。 Qt::Alignment 枚举见“部件公共枚举”章节。


④、 buttonSymbols: ButtonSymbols
访问函数: ButtonSymbols buttonSymbols() const; void setButtonSymbols(ButtonSymbols);
此属性用于设置当前旋转框右侧微调按钮的外观样式,默认值为 UpDownArrows。注
意: 有可能会以相同的方式显示 PlusMinus 和 UpDownArrows。 其中 ButtonSymbols
枚举见下表

QAbstractSpinBox::ButtonSymbols 枚举(无标志)
用于描述旋转框右侧微调按钮的外观样式
成员说明
QAbstractSpinBox::UnDownArrows0箭头形式
QAbstractSpinBox::PlusMinus1+或-符号的形式
QAbstractSpinBox::NoButtons2不显示按钮

                                        

⑤、 correctionMode: CorrectionMode
访问函数: CorrectionMode correctionMode() const; void setCorrectionMode(CorrectionMode);
当编辑完成后,更正中间值的模式。默认为 QAbstractSpinBox::CorrectToPreviousValue。
枚举 CorrectionMode 见下表

QAbstractSpinBox::CorrectionMode 枚举(无标志)
用于描述当编辑完成后,更正中间值的模式
成员说明
QAbstractSpinBox::CorrectToPreviousValue0恢复到最后一个有效值
QAbstractSpinBox::CorrectToNearestValue1恢复到最近的有效值

⑥、 frame: bool 访问函数: bool hasFrame() const; void setFrame(bool);
此属性描述是否绘制旋转框默认的边框

                        

⑦、 keyboardTracking: bool
访问函数: bool keyboardTracking() const; void setKeyboardTracking(bool);
 是否启用键盘跟踪(默认为启用)。
 若启用了键盘跟踪,则当用户从键盘输入新值时,每键入一个值旋转框就会发
送一个 valueChanged()信号。比如当用户通过键盘 6, 0, 0 而输入值 600 时,旋
转框发出 3 个信号,其值分别为 6, 60, 600。
 若禁用键盘跟踪,则旋转框不会在键入时立即发送 valueChanged()信号,而是在
按下 enter 键、失去键盘焦点等时候发送该信号。

⑧、 readOnly: bool 访问函数: bool isReadOnly() const; void setReadOnly(bool);
是否启用只读模式(默认为 false)。 只读模式不能更改值(但仍可选择和复制),也不会
显示文字光标。

⑨、 showGroupSeparator: bool //qt5.3
访问函数: bool isGroupSeparatorShow() const; void setGroupSeparatorShow(bool);

此属性描述,是否启用千位分隔符(默认为 false),即右图中数字下的逗号

注意: Qt 在输入数值后需要点击一下微调按钮才会显示出千位分隔符。

                                
⑩、 specialValueText: QString
访问函数: QString specialValueText() const; void setSpecialValueText(const QString&);
 此属性描述旋转框的特殊值文本(默认为没有特殊值文本)。
 特殊值文本是指, 当值等于最小值时旋转框显示这个特殊值文本而不显示数值。
 特殊值文本会被 QSpinBox::valueChanged()信号传递。

 使用空字符串设置特殊值文本,可关闭特殊值文本的显示。
 若未设置特殊值文本,则该属性为空字符串

⑪、 text: const QString 访问函数: QString text() const;
获取旋转框中的文本包括前缀和后缀。

⑫、 wrapping: bool 访问函数: bool wrapping() const; void setWrapping(bool);
此属性描述旋转框在调整值时是否可以循环(默认为 false),若该属性为 true,则当使
用微调按钮将值增加到最大值时,会循环至最小值,返之亦然。只有在设置了最大值
和最小值时才有意义。

4、 QAbstractSpinBox 类中的函数
①、 QAbstractSpinBox(QWidget* parent = Q_NULLPTR); //构造函数
②、 void selectAll(); //槽, 选中除了前缀和后缀以外的所有文本
③、 virtual void clear() //槽,虚拟的, 清除行编辑器中的所有文本,但前缀和后缀除外
④、 virtual void stepBy(int steps); //虚拟的
当激活微调按钮的向上/向下箭头时会调用此虚函数,该函数会把当前值增加/减少
steps, 其实 steps 就是步长。 比如当前值为 10,则调用 stepBy(3);之后的值为 13。子
类化 QAbstractSpinBox 必须实现此函数,注意:即使结果值超出了最小值和最大值
的范围,此函数仍会被调用。
⑤、 void stepDown() ; //槽
降低一个步长,类似于调用 stepBy(-1);准确的说是 stepBy(steps);因为 steps 的值不一
定是-1,比如,对于 QSpinBox 若把 singleStep 属性设置为 2,则调用该函数将使用
减少 2。
⑥、 void stepUp(); //槽
提高一个步长,类似于调用 stepBy(1);准确的说是 stepBy(steps);见 stepDown()。
⑦、 virtual QValidator::State validate(QString &input, int &pos) const; //虚拟的
此虚函数用于验证 input 是否有效。该虚函数在各子类中被重新实现。
⑧、 virtual void fixup(QString &input) const; //虚拟的
若按下 return 或调用 interpretText()时,对 input 的验证不为 QValidator::Acceptable(可
接受)时,则调用此虚函数,该函数会尝试更正文本以使其有效,该函数在各子类中
被重新实现。
⑨、 virtual StepEnabled stepEnabled() const; //受保护的
此函数决定了微调按钮向上/向下是否合法。若子类化 QAbstractSpinBox,需要实现
此函数。 StepEnabled 标志见下表

QAbstractSpinBox::StepEnabledFlag 枚举
标志为: QAbstractSpinBox::StepEnabled
成员
QAbstractSpinBox::StepNone0x00
QAbstractSpinBox::StepUnEnabled0x01
QAbstractSpinBox::StepDownEnabled0x02
⑩、 QLineEdit* lineEdit() const;//受保护的
void setLineEdit(QLineEdit* lineEdit);//受保护的

以上函数用于获取和设置旋转框的行编辑器。其中,参数 lineEdit 不能为 0。若设置
的新的行编辑器 lineEdit 的 QLineEdit::validator()函数返回 0(即未安装验证器),则将
在新的行编辑器中使用旋转框内部的验证器。

⑪、 virtual void keyPressEvent(QKeyEvent* event); //受保护的
这是对 QWidget::keyPressEvent()的重新实现,该函数重新实现了以下功能

按键说明
向上箭头这会调用 stepBy(1),表示调整值增加 1
向下箭头这会调用 stepBy(-1),表示调整值减少 1
Page up这会调用 stepBy(10),表示调整值增加 10
Page down这会调用 stepBy(-10),表示调整值减少 10

⑫、 void editingFinished() ; //信号
当编辑完成时发送该信号,即当旋转框失去焦点按下 enter 键时,会发送该信号。

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

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

相关文章

Visual Studio批量删除换行

1. 使用ctrlh可以打开替换窗体 2.alte选择窗体中的正则表达式 使用正则表达式: ^\s*$ ^代表行首 $代表行尾 \s代表任意不可见字符,例如空格、Tab等 *代表匹配\s任意次 结果:

002 Linux 权限

前言 本文将会向您介绍关于linux权限方面的内容,包括文件类型,如何切换用户、基本权限、粘滞位等等 Linux具体的用户 超级用户:可以再linux系统下做任何事情,不受限制 普通用户:在linux下做有限的事情。 超级用户的…

安卓预制权限添加规则

android:protectionLevel 可以在 android/frameworks/base/core/res/AndroidManifest.xml查询 signature|preinstalled 加在 这个文件里 privapp-permissions-xx.xml dangerous 加在 default-permissions/default-mega-permissions.xml normal 不需要加 不存在两个文件都加…

【LeetCode-中等题】18. 四数之和

文章目录 题目方法一:双指针(定2动2) 题目 方法一:双指针(定2动2) 这题可以参考【LeetCode-中等题】15. 三数之和 区别在于,三数之和只需要用一个for循环定住一个数,然后设置两个前…

类和对象(3)

文章目录 1.回顾上节2. 拷贝构造3. 运算符重载(非常重要)4. 赋值运算符重载 1.回顾上节 默认成员函数:我们不写,编译器自动生成。我们不写,编译器不会自动生成 默认生成构造和析构: 对于内置类型不做处理对…

mysql远程连接失败

先上结论,只提出最容易忽略的地方 服务器是阿里云、腾讯云等平台,平台本身自带的防火墙没有开启iptables规则中禁用了3306,即使你根本没有启用iptables服务 第二条是最离谱的 从这里可以看到,我服务器并未启用 iptables 服务 但…

应用在电子体温计中的国产温度传感芯片

电子体温计由温度传感芯片,液晶显示器,纽扣电池,专用集成电路及其他电子元器件组成。能快速准确地测量人体体温,与传统的水银玻璃体温计相比,具有读数方便,测量时间短,测量精度高,能…

如何分析Apple搜索广告效果

Apple搜索广告提供了一系列指标,报告和功能,可为广告效果、用户行为和关键词有效性提供有价值的见解。通过利用此工具,广告商可以更深入地了解他们的广告活动,优化他们的策略,并取得更好的结果。 1、在研究数据之前&a…

深入解析NLP情感分析技术:从篇章到属性

目录 1. 情感分析概述1.1 什么是情感分析?- 情感分析的定义- 情感分析的应用领域 1.2 为什么情感分析如此重要?- 企业和研究的应用- 社交媒体和公共意见的影响 2. 篇章级情感分析2.1 技术概览- 文本分类的基本概念- 机器学习与深度学习方法- 词嵌入的力量…

webStorm内存溢出问题

手动启动vue项目正常运行,修改部分内容保存后会自动重新run一下, 这个时候就报错内存溢出,然后很悲伤的需要再手动重启一下。 每个人的情况不同,下面几种方法可以都试一试。 1、修改help里的内存配置 (图片只参考修改…

puttygen工具ppk文件版本配置

有时一些程序要用到ppk密钥文件,如果用puttygen去生成的话,ppk文件版本是可以配置的,有版本2、版本3,如果出现密钥文件无效,可以试一下选择不用的文件版本。 配置位置:打开puttygen-选择菜单栏Key-选择Para…

差分+差分矩阵(更适合新手宝宝体质)

快速掌握差分以及差分矩阵 文章目录 快速掌握差分以及差分矩阵前言差分差分的定义【官方解释】差分自定义【跟前缀和放在一起理解】差分数组的应用 题目描述差分矩阵【与前缀和矩阵进行比较】差分矩阵定义【官方解释】自定义修改操作【跟前缀和对比】 题目描述代码 前言 之前我…

微信小程序——小程序的API介绍

小程序的宿主环境-API 1.小程序API概述 小程序中的API是由宿主环境提供的,通过这些丰富的小程序API,开发者可以方便的调用微信提供的能力,例如:获取用户信息,本地存储,支付功能等。 2.小程序API的3大分类…

wav文件碎片多删除后恢复案例

wav是微软针对音频提供的一种文件,其本质上和qt类文件(如mp4 mov)是一样的,都是“容器”类文件。但凡是容器类的文件其关注的点就是制定规则,一切按规则来(wav中就是速率、时长、编码类型等)。这…

Linux下利用文件IO函数完成多进程复制图片,父进程复制前一半,子进程复制后一半

Linux下利用文件IO函数完成多进程复制图片,父进程复制前一半,子进程复制后一半 一 、概述 在Linux环境下,利用多进程完成图片的复制操作本demo用到了两个进程,一个是主函数所在的父进程,一个在主函数里面创建的子进程…

安装系统作为启动盘的U盘恢复原样

1、插U盘 2、winr——cmd,输入diskpart 3、此电脑——管理——磁盘管理——查看磁盘号:磁盘 1 4、输入:select disk 1——clean 5、磁盘管理——右击新建简单卷——下一步即可

u盘传输数据的时候拔出会怎么样?小心这些危害

U盘是我们日常生活和工作中常使用的一种便携式存储设备。然而,在使用U盘传输数据时,有时我们会不小心将它拔出,而这个看似微不足道的行为实际上可能会带来严重的后果。本文将向您介绍U盘在传输数据时突然拔出可能导致的各种危害,其…

如何恢复U盘里面的已经损坏的数据?

弹出使用驱动器之前,先将U盘格式化的信息框,是Windows系统针对某些特定类型的U盘或移动硬盘的一种常见处理方式。一般来说,如果U盘或移动硬盘出现某些故障或问题,Windows系统会建议用户将其格式化。 格式化是一种常规的操作&…

Kafka消费者组重平衡(二)

文章目录 概要重平衡通知机制消费组组状态消费端重平衡流程Broker端重平衡流程 概要 上一篇Kafka消费者组重平衡主要介绍了重平衡相关的概念,本篇主要梳理重平衡发生的流程。 为了更好地观察,数据准备如下: kafka版本:kafka_2.1…

9.12 C++作业

实现一个图形类(Shape),包含受保护成员属性:周长、面积, 公共成员函数:特殊成员函数书写 定义一个圆形类(Circle),继承自图形类,包含私有属性:半…