目的:创建一个进制可设置的spinbox。
类定义
子类化 QSpinBox 的关键就是实现下面的四个虚函数:
- fixup()
- validate()
- textFromValue()
- valueFromText()
除此之外,我们要设置采用的进制,所以添加一对函数
创建一个 private 的对象,存放私有变量
最终定义如下:
类的实现文件
- 先看一下 HBaseSpinBoxPrivate 的实现
- 一个成员变量,存放当前采用的进制
- 一个成员函数,用来校验和解析输入的字符串
类的实现就比较简单了:
难点?
- validate() 函数负责判断用户输入是否有效。
- 如果数据完全符合条件,就是 QValidator::Acceptable
- 如果数据肯定不可接受,就是 QValidator::Invalid
- 如果数据是指部分符合,则返回 QValidator::Intermediate
- 比如范围是 100~200,当前只输入了 10
- 比如用户输入 00100,数值正确,但格式不好
- 比如用户输入 +110,需要处理掉正号
- fiixup() 最后的修正
- 对于QValidator::Invalid 和 QValidator::Intermediate 的数据,可以在此进行一次修正。
- 前缀和后缀的处理,需要搞清楚 validate和fixup中操作的都是包含前后缀的字符串。
分享到:
相关推荐
QSpinBox是QWidget的子类,通常用于GUI应用程序,使得用户能方便地进行数值选择。 在QT编程中,我们经常需要自定义控件的行为,以满足特定需求。对于QSpinBox,我们可以通过重写其虚函数来实现这一目标。例如,我们...
"Qt 进制转换案例Spin方法.zip"的资源很可能包含了一个使用Qt的 SpinBox 控件实现进制转换的实例项目。 SpinBox是Qt UI组件之一,它通常用于显示和编辑整数值。此控件允许用户通过上下箭头或直接输入数值进行交互,...
QSpinBox在创建时需要设置一个父对象,通常是QWidget或其子类。你可以通过`QSpinBox *spinBox = new QSpinBox(parent)`来创建一个新的QSpinBox实例。接着,你可以设置其数值范围,如最小值(minimum)和最大值...
本资源是在Qt_5_12_6_MinGW_64环境下的SpinBox常用功能的应用示例的工程文件, QSpinBox用于整数的显示和输入,一般显示十进制数,也可以显示二进制、十六进制的数,而且可以在显示框中增加前缀或后缀。 ...
2. **初始化 QSpinBox:** ```cpp QSpinBox *spinBox = new QSpinBox(this); ``` 这里创建了一个 `QSpinBox` 控件。 3. **设置范围:** ```cpp spinBox->setMinimum(0); spinBox->setMaximum(100); ``` ...
QSpinBox是Qt提供的一种UI控件,它允许用户通过上下箭头或直接输入来选择一个整数值。 QSpinBox是Qt Widgets模块的一部分,常用于需要用户输入有限范围整数的场景。例如,在设置配置参数、年龄输入或者选择数量时,...
在`createEditor()`方法中,实例化一个QSpinBox并设置其值,然后将其设置为当前的编辑器。在`setEditorData()`和`setModelData()`方法中,我们将确保模型数据与QSpinBox的值同步。 2. **QComboBox集成:** 对于...
总的来说,QT5.14中的SpinBox是构建GUI界面时不可或缺的一部分,它的灵活性和强大的功能使得数值输入变得简单易用。通过熟练掌握SpinBox的使用,开发者可以为用户提供更加直观和高效的交互体验。
标题中的"zidingyi-spinbox.rar_spinBOX"指的是一个关于自定义 SpinBox 控件的示例项目,这个项目主要是为了展示如何将 SpinBox 的显示内容设置为字符串,同时在内部处理时仍然保持其数值(int)特性。SpinBox 是一...
描述中的“spinbox一个简单的滑动模块”进一步确认了我们在讨论的是 SpinBox 控件。这个描述虽然简短,但表明SpinBox是一个用于用户交互的简单工具,可能包含滑动功能,让用户能够轻松调整数值。 标签"spinBOX"再次...
在Qt编程中,SpinBox是一个非常常用的控件,用于让用户通过上下箭头按钮或者直接输入数字来选择一个整数值。在给定的“zidingyi-spinbox.rar”压缩包中,包含了一个自定义的SpinBox实现,它能够显示字符串,并且在...
QSpinBox 0 99 0 spinBox_humMIN 否 QSpinBox 50 100 1 spinBox_humMAX 否 QSpinBox 0 3999 0 spinBox_illMIN 否 QSpinBox 1000 4000 1 spinBox_illMAX 否 (2)实现”更新范围”槽函数 在
在这个QT编写的进制转换工具中,我们可以看到它支持32位二进制与十进制、十六进制之间的转换,并且还提供了对二进制每一位进行单独修改的功能。这在编程、数据处理以及理解计算机底层工作原理时非常有用。 首先,让...
在“Qt4_十六进制微调框”(hexspinbox.rar)中,我们可以推测这是一个定制的组件,它扩展了`QSpinBox`的功能,使其能够以十六进制格式显示和编辑数值。这种自定义控件通常用于GUI应用中,特别是在需要用户输入或...
在Qt库中,QSpinBox是一种常用的输入控件,专门用于处理整数类型的数值输入。它为用户提供了一个可以向上或向下滚动的数值选择器,通常用于应用程序中需要用户输入有限范围内的整数情况。本篇文章将深入探讨QSpinBox...
在这个项目中,我们关注的是一个使用QT实现的64位十六进制与十进制转换工具,特别强调了它带有bitmap配置显示功能,这对于在嵌入式系统开发中配置寄存器位非常有用。 首先,我们要理解十六进制和十进制之间的转换...
使用QSpinBox,同样在`createEditor`方法中实例化,并设置其最小值和最大值。`setEditorData`用于设置初始值,`setModelData`用于获取用户调整后的数值。 5. 配置QHeaderView: 需要为QTableView的每一列设置...
QSpinBox是Qt库中的一个控件,用于显示和编辑整数值。它是用户界面中常见的一种元素,允许用户通过上下箭头或者直接输入数字来选择一个整数值。在这个"QSpinBox.7z"压缩包中,很可能是包含了关于QSpinBox的示例代码...
为了实现“combox中有多个spinBox”,开发者可能创建了一个自定义的`QComboBox`子类,使得当用户在下拉列表中选择一项时,会显示一组关联的`QSpinBox`供用户输入具体数值。这样可以为用户提供更灵活的数据输入方式。...
使用一个类继承QStyledItemDelegate实现常用的控件委托,在使用时可以直接调用接口,灵活实现各种委托 配套文章:https://blog.csdn.net/qq_40666149/article/details/128877549