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

QT6(QSpinBox和QDoubleSpinBox)

QT6


QSpinBox和QDoubleSpinBox

QSpinBox和QDoubleSpinBox都是QAbstractSpinBox的子类

QSpinBox (整型数字选择框) 属性

属性数据类型描述
acceleratedbool设置是否启用加速。长时间按住按钮会加快数值变化速度
keyboardTrackingbool设置键盘跟踪。true 时每按一键都发射信号;false 时只在输入完成后发射
readOnlybool设置控件是否为只读。用户无法键盘输入,但可通过按钮调整
wrappingbool设置数值是否循环。达到最大值后继续增加会跳转到最小值
framebool设置是否绘制控件边框。
alignmentQt::Alignment设置文本框内数值的对齐方式(如右对齐、居中)
buttonSymbolsQAbstractSpinBox::ButtonSymbols设置增减按钮符号:箭头、加减号或无按钮
correctionModeQAbstractSpinBox::CorrectionMode设置输入无效值时的自动纠正模式
specialValueTextQString当值等于最小值时显示的特殊文本(如 “Off”)

特有属性

属性数据类型描述
valueint控件的当前整数值(核心属性)
minimumint允许的最小值
maximumint允许的最大值
singleStepint点击一次按钮改变的整步长
prefixQString显示在数值前面的前缀(如 "$"
suffixQString显示在数值后面的后缀(如 " cm"
displayIntegerBaseint设置数值显示的进制基数(如 2:二进制,16:十六进制)

常用信号

  • valueChanged(int value): 整数值改变时发射
  • textChanged(const QString &text): 显示的完整文本改变时发射

QDoubleSpinBox (浮点型数字选择框) 属性

属性数据类型描述
acceleratedbool设置是否启用加速。长时间按住按钮会加快数值变化速度
keyboardTrackingbool设置键盘跟踪。true 时每按一键都发射信号;false 时只在输入完成后发射
readOnlybool设置控件是否为只读。用户无法键盘输入,但可通过按钮调整
wrappingbool设置数值是否循环。达到最大值后继续增加会跳转到最小值
framebool设置是否绘制控件边框
alignmentQt::Alignment设置文本框内数值的对齐方式(如右对齐、居中)
buttonSymbolsQAbstractSpinBox::ButtonSymbols设置增减按钮符号:箭头、加减号或无按钮
correctionModeQAbstractSpinBox::CorrectionMode设置输入无效值时的自动纠正模式
specialValueTextQString当值等于最小值时显示的特殊文本(如 “Default”)

特有属性

属性数据类型描述
valuedouble控件的当前浮点数值(核心属性)
minimumdouble允许的最小浮点值
maximumdouble允许的最大浮点值
singleStepdouble点击一次按钮改变的浮点步长
prefixQString显示在数值前面的前缀(如 "€"
suffixQString显示在数值后面的后缀(如 " kg"
decimalsint核心特性:设置数值显示和内部处理的小数位数

常用信号

  • valueChanged(double value): 浮点数值改变时发射
  • textChanged(const QString &text): 显示的完整文本改变时发射

我们来做个小案例来尝试一下

代码测试

#include "widget.h"
#include "./ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);// 创建信号和槽当spinNum发生变化时,调用valueChanged,执行on_pushButton_clicked方法this->connect(ui->spinNum,&QSpinBox::valueChanged,this,&Widget::on_pushButton_clicked);this->connect(ui->spinPrice,&QDoubleSpinBox::valueChanged,this,&Widget::on_pushButton_clicked);
}Widget::~Widget()
{delete ui;
}void Widget::on_pushButton_clicked()
{int num = ui->spinNum->value();float price = ui->spinPrice->value();float total = price * num;ui->spinTotal->setValue(total);
}void Widget::on_spinDec_valueChanged(int arg1)
{ui->spinBin->setValue(arg1);ui->spinHex->setValue(arg1);
}void Widget::on_spinBin_valueChanged(int arg1)
{ui->spinDec->setValue(arg1);ui->spinHex->setValue(arg1);
}void Widget::on_spinHex_valueChanged(int arg1)
{ui->spinBin->setValue(arg1);ui->spinDec->setValue(arg1);
}

效果展示

在这里插入图片描述


常用的按钮按键

常用的按钮组件有普通按钮QPushButton,工具按钮QToolButton,单选按钮QRadioButton,复选按钮QCheckBox,它们的父类都是QAbstractButton

QAbstractButton的autoExclusive属性:如果启用了自动独占性,属于同一个父组件的可检查按钮将互斥

QGroupBox的flat属性:可以最小化区域框的空间消耗

代码测试

#include "widget.h"
#include "./ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);
}Widget::~Widget()
{delete ui;
}void Widget::on_btnLeft_clicked()
{ui->lineEdit->setAlignment(Qt::AlignLeft);
}void Widget::on_btnCenter_clicked()
{ui->lineEdit->setAlignment(Qt::AlignCenter);
}void Widget::on_btnRigth_clicked()
{ui->lineEdit->setAlignment(Qt::AlignRight);
}void Widget::on_btnFontBold_clicked(bool checked)
{QFont font = ui->lineEdit->font();font.setBold(checked);ui->lineEdit->setFont(font);
}void Widget::on_btnFontItalic_clicked(bool checked)
{QFont font = ui->lineEdit->font();font.setItalic(checked);ui->lineEdit->setFont(font);
}void Widget::on_btnUnerLine_clicked(bool checked)
{QFont font = ui->lineEdit->font();font.setUnderline(checked);ui->lineEdit->setFont(font);
}void Widget::on_checkBox_clicked(bool checked)
{ui->lineEdit->setReadOnly(checked);
}void Widget::on_checkBox_2_clicked(bool checked)
{ui->lineEdit->setEnabled(checked);
}void Widget::on_checkBox_3_clicked(bool checked)
{ui->lineEdit->setClearButtonEnabled(checked);
}void Widget::on_btnBlack_clicked()
{QPalette palette = ui->lineEdit->palette();palette.setColor(QPalette::Text,Qt::black);ui->lineEdit->setPalette(palette);
}void Widget::on_radioButton_3_clicked()
{QPalette palette = ui->lineEdit->palette();palette.setColor(QPalette::Text,Qt::red);ui->lineEdit->setPalette(palette);
}void Widget::on_btnBlue_clicked()
{QPalette palette = ui->lineEdit->palette();palette.setColor(QPalette::Text,Qt::blue);ui->lineEdit->setPalette(palette);
}

效果展示

在这里插入图片描述

http://www.dtcms.com/a/342690.html

相关文章:

  • java项目数据脱敏工具类实现
  • 【离线安装】CentOS Linux 7 上离线部署Oracle 19c(已成功安装2次)
  • 【数据可视化-96】使用 Pyecharts 绘制主题河流图(ThemeRiver):步骤与数据组织形式
  • 如何使用 DeepSeek 助力工作​
  • C# 13 与 .NET 9 跨平台开发实战(第一章:开发环境搭建与.NET概述-下篇)
  • 阿里云的centos8 服务器安装MySQL 8.0
  • 【LeetCode 415】—字符串相加算法详解
  • Java学习历程14——制作一款五子棋游戏(4)
  • R 语言科研配色 --- 第 85 期 (附免费下载的配色绘图PPT)
  • 全屋WiFi强电款WiFi6 86面板一站式测试解决方案
  • leetcode 904 水果成篮
  • 从零开始理解 K 均值聚类:原理、实现与应用
  • Grafana侧重可视化,那多数据源告警呢?
  • Linux的奇妙冒险——进程间通信(管道、SystemV IPC)
  • 【实战记录】麒麟服务器操作系统安装KSC-Defender安全中心全指南
  • EagleTrader交易员采访|交易是一场概率游戏
  • 免费DirectX修复工具?游戏运行异常?【图文详解】dll修复工具?D3DX9_43.dll丢失
  • 【科研绘图系列】R语言绘制序列分析图
  • Rust 的流程控制与函数
  • SQL 中 DISTINCT 的全方位指南:从基础用法到性能优化
  • 【51单片机】【protues仿真】基于51单片机温度烟雾控制系统
  • C++项目实战——高性能内存池(一)
  • Redis面试精讲 Day 26:Redis源码分析:事件循环与网络模型
  • docker使用和部署深化学习
  • 深入理解Java虚拟机:JVM高级特性与最佳实践(第3版)第一章知识点问答(21题)
  • 华为AUTOSAR质量目标与开发实践
  • LeetCode100 -- Day3
  • 常德二院全栈国产化实践:KingbaseES 数据库的关键作用
  • 机器学习聚类算法学习报告
  • Spring容器Bean的创建流程