控件简介:
SpinBox用于整数的显示与输入,一般显示为十进制,也可以显示二进制和十六进制的数,而且可以在显示框增加前缀和后缀
QDoubleSpinBox用于浮点数的显示和输入,可以设置显示小数位数,也可以设置显示的前缀和后缀
它们都是QAbstractSpinBox的子类,具有大多数相同的属性,只是参数类型不同。在UI设计器中进行页面设计时,就可以设置这些属性。
QSpinBox和QDoubleSpinBox的主要属性如下:
prefix //数字显示的前缀
suffix //数字显示的后缀
minimum //数值范围的最小值
maximum //数值范围的最大值
singlestep //设置步长,即调整按钮单步改变值
vlaue //当前显示值
displayInegerBase //QSpinBox的特有属性,显示整数使用的进制
decimals //QDoubleSpinBox的特有属性,显示数值小数的位数
在使用QSpInBox和QDoubleSpinBox读取和设置数值时,无需做字符串和数值之间的转换,也无需做进制之间的转换,其显示效果设置好之后就能按照效果进行显示,这对于输入输出来说是十分方便的
演示例程效果如下:
具体实现过程如下所示,详细代码如下:
main.cpp
#include "widget.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Widget w;
w.show();
return a.exec();
}
widget.cpp
#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_btn_Cal_clicked()
{
//计算按钮
int num = ui->spin_num->value(); //获取数量
ui->spin_num->setSuffix("KG"); //设置数量后缀
float price = ui->dspin_price->value(); //获取价格
ui->dspin_price->setPrefix("¥");
float sum = num*price;
ui->dspin_sum->setPrefix("¥"); //设置总价前缀
ui->dspin_sum->setValue(sum);
}
void Widget::on_btn_Dec_clicked()
{
//十进制转化
int val = ui->spin_Dec->value();
ui->spin_bin->setDisplayIntegerBase(2);
ui->spin_bin->setValue(val);
ui->spin_Hex->setDisplayIntegerBase(16);
ui->spin_Hex->setValue(val);
}
widget.h
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
namespace Ui {
class Widget;
}
class Widget : public QWidget
{
Q_OBJECT
public:
explicit Widget(QWidget *parent = nullptr);
~Widget();
private slots:
void on_btn_Cal_clicked();
void on_btn_Dec_clicked();
private:
Ui::Widget *ui;
};
#endif // WIDGET_H