QSpinBox用于整数的显示和输入,一般显示十进制数,也可以显示二进制、十六进制的数,而且可以在显示框中增加前缀或后缀。
QDoubleSpinBox用于浮点数的显示和输入,可以设置显示小数位数,也可以设置显示的前缀或后缀。
QSpinBox和QDoubleSpinBox都是QAbstractSpinBox的子类,具有大多数相同的属性,只是参数类型不同。
提示:一个属性在类的接口中一般有一个读取函数和一个设置函数,如QDoubleSpinBox的decimals属性,读取属性值的函数为int decimals(),设置属性值的函数为void setDecimals(int prec)。
在使用QSpinBox和QDoubleSpinBox读取和设置数值时,无需做字符串与数值之间的转换,
也无需做进制的转换,其显示效果(前缀、后缀、进制和小数位数)在设置好之后就自动按照效
void Widget::on_btnCal_clicked()
{
//计算
int num = ui->spinNum->value();
float price = ui->spinPrice->value();
float total = num*price;
ui.spinTotal->setValue(total);
}
void Widget::on_btnBin_clicked()
{
//读取二进制数,以其他进制显示
int val = ui->spinBin->value();
ui->spinDec->setValue(val);
ui->spinHex->setValue(val);
}
#include "widget.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Widget w;
w.show();
return a.exec();
}
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
namespace Ui {
class Widget;
}
class Widget : public QWidget
{
Q_OBJECT
public:
explicit Widget(QWidget *parent = 0);
~Widget();
private slots:
void on_btnCal_clicked(); //计算按键 clicked()响应
void on_btnDec_clicked();//读十进制数再用其他进制显示 的按键的 clicked()响应
void on_btnBin_clicked();//读二进制数再用其他进制显示 的按键的 clicked()响应
void on_btnHex_clicked();//读十六进制数再用其他进制显示 的按键的 clicked()响应
private:
Ui::Widget *ui;
};
#endif // WIDGET_H
#include "widget.h"
#include "ui_widget.h"
#include <QString>
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
//“数量”和“单价”两个SpinBox的valueChanged()信号与on_btnCal_clicked()槽关联
QObject::connect(ui->spinNum,SIGNAL(valueChanged(int)),this,SLOT(on_btnCal_clicked())); //
QObject::connect(ui->spinPrice,SIGNAL(valueChanged(double)),this,SLOT(on_btnCal_clicked()));
QObject::connect(ui->spinDec,SIGNAL(valueChanged(int)),
this,SLOT(on_btnDec_clicked()));//spinDec 十进制显示的SpinBox
QObject::connect(ui->spinBin,SIGNAL(valueChanged(int)),
this,SLOT(on_btnBin_clicked()));//spinBin 二进制显示的SpinBox
QObject::connect(ui->spinHex,SIGNAL(valueChanged(int)),
this,SLOT(on_btnHex_clicked()));//spinHex 十六进制显示的SpinBox
}
Widget::~Widget()
{
delete ui;
}
void Widget::on_btnCal_clicked()
{ //计算按键
int num=ui->spinNum->value(); //读取数量,直接是整数
float price=ui->spinPrice->value();//读取单价,直接是浮点数
float total=num*price;//相乘计算
ui->spinTotal->setValue(total); //直接显示浮点数
}
void Widget::on_btnDec_clicked()
{ //读取十进制,以其他进制显示
int val;
val=ui->spinDec->value();//读取十进制数
//无需进制转换,前缀在设置好之后,就自动按照效果进行显示
ui->spinBin->setValue(val); //设置数值即可,自动以二进制显示
ui->spinHex->setValue(val); //设置数值即可,自动以十六进制显示
}
void Widget::on_btnBin_clicked()
{ //读取二进制,以其他进制显示
int val=ui->spinBin->value();//读取spinBin里的二进制数,得到整数
ui->spinDec->setValue(val);//设置数值即可,自动以十进制显示
ui->spinHex->setValue(val);//设置数值即可,自动以十六进制显示
}
void Widget::on_btnHex_clicked()
{ //读取十六进制,以其他进制显示
int val;
val=ui->spinHex->value();//读取 spinHex 里的十六进制数,得到整数
ui->spinDec->setValue(val);//设置数值即可,自动以十进制显示
ui->spinBin->setValue(val);//设置数值即可,自动以二进制显示
}
原文地址:https://blog.csdn.net/u011671745/article/details/134778313
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_49734.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。