当前位置: 首页 > news >正文

Qt QSpinBox 总结

Qt5 QSpinBox 总结

1. 基本特性

  • 用途:用于输入和调整整数值,支持通过上下箭头、键盘输入或编程方式修改值。

  • 默认范围:0 到 99,可通过 setRange(min, max) 自定义。

  • 步长控制:setSingleStep(step) 设置单步增减值(默认为1)。

  • 前缀/后缀:支持通过 setPrefix() 和 setSuffix() 添加文本(如 $ 或 px),仅用于显示,不影响实际值。

  • 进制显示:支持十进制(默认)、十六进制(setDisplayIntegerBase(16))、二进制等。

2. 核心方法

方法说明
value() / setValue(int)获取或设置当前值。
minimum() / maximum()获取最小/最大值。
setRange(int min, int max)同时设置最小值和最大值。
setSingleStep(int step)设置单步增减步长。
setPrefix(const QString&)设置数值前显示的前缀(如 $)。
setSuffix(const QString&)设置数值后显示的后缀(如 px)。
setWrapping(bool enable)启用/禁用循环(达到极值后绕回)。
setAccelerated(bool enable)启用加速(长按箭头时快速增减值)。

3. 关键信号


信号说明
valueChanged(int)值变化时触发,传递新整数值。
textChanged(const QString&)文本(含前缀/后缀)变化时触发。

4. 样式定制

  • QSS 示例:
QSpinBox {
    border: 2px solid #3498db;
    border-radius: 5px;
    padding: 5px;
}
QSpinBox::up-button { /* 上箭头样式 */ }
QSpinBox::down-button { /* 下箭头样式 */ }

5. 子类化与自定义

  • 输入验证:覆盖 validate() 和 valueFromText() 实现自定义格式(如带单位的输入)。

  • 事件处理:重写 keyPressEvent() 或 wheelEvent() 修改默认交互逻辑。

6. 注意事项

  • 输入过滤:自动过滤非数字字符,用户无需手动处理。

  • 键盘交互:

 上下箭头键:按步长调整值。

 PageUp/PageDown:按步长×10调整值。
  • 值与显示分离:value() 始终返回整数,前缀/后缀仅用于显示。

  • 信号选择:优先用 valueChanged(int) 避免处理文本解析。

7. 典型应用场景

  • 数值输入(如年龄、数量、尺寸)。

  • 与 QSlider 联动,实现双向数据绑定。

  • 参数配置界面(如字体大小、颜色通道值)。

8. 示例代码

// 创建 QSpinBox 并设置属性
QSpinBox *spinBox = new QSpinBox;
spinBox->setRange(0, 100);          // 范围 0~100
spinBox->setSingleStep(5);          // 步长5
spinBox->setPrefix("$ ");           // 显示 "$ 数值"
spinBox->setValue(50);              // 初始值

// 连接信号
connect(spinBox, QOverload<int>::of(&QSpinBox::valueChanged), 
        [](int val) { qDebug() << "Value:" << val; });

文章转载自:

http://cKbGyvTu.wjhdn.cn
http://XaWt7JY8.wjhdn.cn
http://91uTfyc2.wjhdn.cn
http://Fsb35NCS.wjhdn.cn
http://nxa4avyj.wjhdn.cn
http://qdOUM7Tw.wjhdn.cn
http://jrWxsWRU.wjhdn.cn
http://FPJFvX3q.wjhdn.cn
http://LLGpBjIU.wjhdn.cn
http://gK8dcNfL.wjhdn.cn
http://BiPiQQVf.wjhdn.cn
http://mocDxX37.wjhdn.cn
http://xTSdmcLP.wjhdn.cn
http://Crcl1CUn.wjhdn.cn
http://tBEnRJ8J.wjhdn.cn
http://rmSilcAv.wjhdn.cn
http://NS3Rjk73.wjhdn.cn
http://oyoxrrcR.wjhdn.cn
http://XaHsWWeG.wjhdn.cn
http://BapvMCHg.wjhdn.cn
http://shRX14CS.wjhdn.cn
http://Vnk48yZU.wjhdn.cn
http://1tkwDjIH.wjhdn.cn
http://ok4TunG4.wjhdn.cn
http://YxbIjLmv.wjhdn.cn
http://6KFfTzjN.wjhdn.cn
http://KTPHYgHc.wjhdn.cn
http://hlU2Mrxi.wjhdn.cn
http://XaaDfREa.wjhdn.cn
http://ITj3gM4d.wjhdn.cn
http://www.dtcms.com/a/15257.html

相关文章:

  • Large Language Model Distilling Medication Recommendation Model
  • 移动端测试的挑战与解决方案:兼容性、网络问题及实战策略
  • 如何通过产品版本管理提升软件开发效率?
  • 望远镜成像系统--科学评价光学镜头
  • 人工智能之数学基础:线性子空间
  • JavaScript 高效编码完全指南
  • 盛铂科技 SCP4006/4018/4040:国产袖珍式功率计 射频微波功率探头 平均功率计
  • Linux进程信号
  • pycharm上传github问题:rejected
  • 十进制数到十六进制数的转换
  • 【云安全】云原生-K8S(四)安全问题分析
  • IS-IS 泛洪机制 | LSP 处理流程
  • Agents Go Deep 智能体深入探索
  • uniapp商场之订单模块【订单列表】
  • SpringBoot自动配置-以Mybatis配置为例
  • 深入解析:如何利用 Python 爬虫获取淘宝/天猫 SKU 详细信息
  • 模型文件及部署工具包org.dmg.pmml
  • 本地部署SafeLine详细指南:抵御网络攻击构建更安全的网站环境
  • LabVIEW太阳能制冷监控系统
  • C# OpenCV机器视觉:OSTU算法实现背景差分的自适应分割
  • DeepSeek AI 满血版功能集成到WPS或Microsoft Office中
  • Baumer工业相机堡盟工业相机如何通过BGAPI SDK实现一次触发控制三个光源开关分别采集三张图像(C#)
  • LeetCode 热题 100_组合总和(58_39_中等_C++)(递归(回溯))
  • YOLO算法模型检测利用手机IP摄像头
  • php5 php8 nginx Access denied.
  • 【RAG落地利器】Weaviate、Milvus、Qdrant 和 Chroma 向量数据库对比
  • 基于Java的图书管理网站:SpringBoot+Vue开发的图书借阅管理系统
  • 判断192.168.1.0/24网络中,当前在线的ip有哪些
  • AWS AppFabric
  • 【前端框架】vue2和vue3的区别详细介绍