Windows图形界面(GUI)-QT-C/C++ - Qt QSpinBox

embedded/2025/2/9 2:37:31/
  • 公开视频 -> 链接点击跳转公开课程
  • 博客首页 -> ​​​链接点击跳转博客主页

目录

一、控件概述

1.1 核心特性

1.2 常用场景

二、核心属性详解

2.1 基本属性配置

2.2 进阶属性说明

三、信号机制与事件处理

3.1 核心信号

3.2 信号对比

四、样式定制与功能扩展

4.1 样式表定制

4.2 功能扩展方法

五、典型应用案例

5.1 时间选择组件

5.2 进制转换器


一、控件概述

QSpinBox 是 Qt 框架中用于整数输入的重要控件,它提供了便捷的数字调整方式和精确的输入控制,特别适用于需要数值范围限制的场景。

1.1 核心特性

  • 支持整数输入和步进调整
  • 提供最小/最大值限制
  • 可设置递增/递减步长
  • 支持数值显示格式定制
  • 支持键盘和鼠标操作

1.2 常用场景

  1. 参数配置界面(如音量调节)
  2. 数据范围选择(如年龄输入)
  3. 步进式调整(如温度控制)
  4. 选项循环选择(如星期设置)
  5. 数值输入严格限制的场景

二、核心属性详解

2.1 基本属性配置

// 初始化配置示例  
ui->spinBox->setMinimum(0);        // 最小值  
ui->spinBox->setMaximum(100);      // 最大值  
ui->spinBox->setSingleStep(5);     // 步进值  
ui->spinBox->setPrefix("Value: "); // 前缀  
ui->spinBox->setSuffix(" dB");     // 后缀  
ui->spinBox->setWrapping(true);    // 循环模式

2.2 进阶属性说明

属性名类型说明默认值
keyboardTrackingbool是否实时响应键盘输入true
readOnlybool是否为只读模式false
specialValueTextQString最小值时的特殊文本显示""
displayIntegerBaseint数值显示基数(如二进制、十六进制)10

三、信号机制与事件处理

3.1 核心信号

// 标准信号连接示例
connect(ui->spinBox, QOverload<int>::of(&QSpinBox::valueChanged),[=](int value){qDebug() << "New value:" << value;});

3.2 信号对比

  • valueChanged(int):仅传递数值
  • valueChanged(QString):包含格式化文本
  • editingFinished():结束编辑时触发

四、样式定制与功能扩展

4.1 样式表定制

/* 自定义样式表示例 */  
QSpinBox {  border: 2px solid #2c3e50;  border-radius: 5px;  padding: 5px;  background: #ecf0f1;  
}  QSpinBox::up-button {  subcontrol-origin: border;  subcontrol-position: right top;  width: 20px;  
}  QSpinBox::down-button {  subcontrol-origin: border;  subcontrol-position: right bottom;  width: 20px;  
}

4.2 功能扩展方法

  1. 创建派生类继承QSpinBox
  2. 重写键盘/鼠标事件
  3. 增加自定义验证逻辑
  4. 添加单位转换功能
  5. 实现复杂数值映射

五、典型应用案例

5.1 时间选择组件

// 创建时分秒选择器  
QSpinBox *hourBox = new QSpinBox(this);  
hourBox->setRange(0, 23);  
hourBox->setDisplayIntegerBase(10);  
hourBox->setPrefix("H: ");  QSpinBox *minuteBox = new QSpinBox(this);  
minuteBox->setRange(0, 59);  
minuteBox->setWrapping(true);  
minuteBox->setPrefix("M: ");

5.2 进制转换器

// 十六进制数值输入  
auto createHexSpinBox = [](){  QSpinBox *box = new QSpinBox;  box->setDisplayIntegerBase(16);  box->setPrefix("0x");  return box;  
};


http://www.ppmy.cn/embedded/160684.html

相关文章

git中文件的状态状态切换

文件的状态分类 Git 中文件的状态主要分为以下几种&#xff1a; Untracked&#xff08;未跟踪&#xff09; 定义&#xff1a;这些文件从未被 Git 跟踪过&#xff0c;通常是因为它们是新创建的文件&#xff0c;或者被 .gitignore 排除在外。 示例&#xff1a;新创建的文件 new…

使用 Axios ——个人信息修改与提示框实现

目录 详细介绍&#xff1a;个人信息设置与修改页面实现 1. HTML 结构 2. CSS 样式 3. JavaScript 核心逻辑 a. 信息渲染与表单提交 b. 头像上传与预览 4. 功能详解 5. 总结 提示&#xff1a; 这段代码展示了如何创建一个简单的个人信息设置页面&#xff0c;包含用户个…

HTML-表格,表单标签

表单标签: 场景:在网页中负责数据采集功能,如注册,登录等数据采集. 标签:<form> 表单项:不同类型的input元素,下拉列表,文本等. <input>:定义表单项,通过type属性控制输入形式. <select>:定义下拉列表 <textarea>:定义文本域 属性: action:规定当提…

llama_index

目录 安装 llama_index 搜索引擎 用 DeepSeek API 替换本地 Ollama 模型 源代码&#xff1a; 安装 pip install llama_index llama_index 搜索引擎 llama_index框架构建搜索引擎_llamaindex使用正则表达式拆分文档-CSDN博客 用 DeepSeek API 替换本地 Ollama 模型 https…

保姆级教程 !SQL Server数据库的备份和还原

使用 SQL Server Management Studio (SSMS) 备份和还原数据库 1、数据库备份 Step 1 打开 SSMS 输入server name 以及用户名和密码连接到你的 SQL Server 实例 Step 2 展开Database,选中你要备份的数据库 Step 3 右击选中的数据库&#xff0c;点击Tasks --> Back …

Leetcode—487. 最大连续1的个数 II【中等】Plus

2025每日刷题&#xff08;210&#xff09; Leetcode—487. 最大连续1的个数 II 实现代码 class Solution { public:int findMaxConsecutiveOnes(vector<int>& nums) {int zeros 0;int ans 0;for(int l 0, r 0; r < nums.size(); r) {if(nums[r] 0) {zeros;…

【Axure教程】标签版分级多选下拉列表

分级多选下拉列表是指一个下拉列表&#xff0c;它包含多个层次的选项&#xff0c;用户可以选择一个或多个选项。这些选项通常是根据某种层级关系来组织的&#xff0c;例如从上到下有不同的分类或者过滤条件&#xff0c;用户选择上层选项后&#xff0c;下层选项会发生变化&#…

9. k8s二进制集群之kube-controller-manager部署

同样在部署主机上创建证书请求文件(为之后的证书生成做准备)根据上面的证书文件创建证书(结果会在当前目录下产生kube-controller-manager证书)创建kube-controller-manager服务配置文件创建kube-controller-manager服务启动文件同步kube-controller-manager证书到对应mast…