1. SpinBox簡(jiǎn)介
QSpinBox 用于整數(shù)的顯示和輸入,一般顯示十進(jìn)制數(shù),也可以顯示二進(jìn)制、十六進(jìn)制的數(shù),而且可以在顯示框中增加前綴或后綴。
QDoubleSpinBox 用于浮點(diǎn)數(shù)的顯示和輸入,可以設(shè)置顯示小數(shù)位數(shù),也可以設(shè)置顯示的前綴或后綴。
實(shí)例samp4_3 演示QSpinBox和QDoubleSpinBox這兩個(gè)組件的使用,圖 4-3 是程序運(yùn)行界面。程序功能與實(shí)例samp4_1類似,但是使用 QSpinBox 和 QDoubleSpinBox 作為數(shù)字輸入輸出組件。
QSpinBox和QDoubleSpinBox 都是 QAbstractSpinBox的子類,具有大多數(shù)相同的屬性,只是參數(shù)類型不同。在UI 設(shè)計(jì)器里進(jìn)行界面設(shè)計(jì)時(shí),就可以設(shè)置這些屬性。QSpinBox 和QDoubleSpinBox 的主要屬性見(jiàn)表4-1
文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-634321.html
2. SpinBox使用
2.1 可視化UI設(shè)計(jì)
文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-634321.html
2.2 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 = 0);
~Widget();
private slots:
void on_btnCal_clicked(); //計(jì)算按鍵 clicked()響應(yīng)
void on_btnDec_clicked();//讀十進(jìn)制數(shù)再用其他進(jìn)制顯示 的按鍵的 clicked()響應(yīng)
void on_btnBin_clicked();//讀二進(jìn)制數(shù)再用其他進(jìn)制顯示 的按鍵的 clicked()響應(yīng)
void on_btnHex_clicked();//讀十六進(jìn)制數(shù)再用其他進(jìn)制顯示 的按鍵的 clicked()響應(yīng)
private:
Ui::Widget *ui;
};
#endif // WIDGET_H
2.3 widget.cpp
#include "widget.h"
#include "ui_widget.h"
#include <QString>
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
//“數(shù)量”和“單價(jià)”兩個(gè)SpinBox的valueChanged()信號(hào)與on_btnCal_clicked()槽關(guān)聯(lián)
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 十進(jìn)制顯示的SpinBox
QObject::connect(ui->spinBin,SIGNAL(valueChanged(int)),
this,SLOT(on_btnBin_clicked()));//spinBin 二進(jìn)制顯示的SpinBox
QObject::connect(ui->spinHex,SIGNAL(valueChanged(int)),
this,SLOT(on_btnHex_clicked()));//spinHex 十六進(jìn)制顯示的SpinBox
}
Widget::~Widget()
{
delete ui;
}
void Widget::on_btnCal_clicked()
{ //計(jì)算按鍵
int num=ui->spinNum->value(); //讀取數(shù)量,直接是整數(shù)
float price=ui->spinPrice->value();//讀取單價(jià),直接是浮點(diǎn)數(shù)
float total=num*price;//相乘計(jì)算
ui->spinTotal->setValue(total); //直接顯示浮點(diǎn)數(shù)
}
void Widget::on_btnDec_clicked()
{ //讀取十進(jìn)制,以其他進(jìn)制顯示
int val;
val=ui->spinDec->value();//讀取十進(jìn)制數(shù)
ui->spinBin->setValue(val); //設(shè)置數(shù)值即可,自動(dòng)以二進(jìn)制顯示
ui->spinHex->setValue(val); //設(shè)置數(shù)值即可,自動(dòng)以十六進(jìn)制顯示
}
void Widget::on_btnBin_clicked()
{ //讀取二進(jìn)制,以其他進(jìn)制顯示
int val=ui->spinBin->value();//讀取spinBin里的二進(jìn)制數(shù),得到整數(shù)
ui->spinDec->setValue(val);//設(shè)置數(shù)值即可,自動(dòng)以十進(jìn)制顯示
ui->spinHex->setValue(val);//設(shè)置數(shù)值即可,自動(dòng)以十六進(jìn)制顯示
}
void Widget::on_btnHex_clicked()
{ //讀取十六進(jìn)制,以其他進(jìn)制顯示
int val;
val=ui->spinHex->value();//讀取 spinHex 里的十六進(jìn)制數(shù),得到整數(shù)
ui->spinDec->setValue(val);//設(shè)置數(shù)值即可,自動(dòng)以十進(jìn)制顯示
ui->spinBin->setValue(val);//設(shè)置數(shù)值即可,自動(dòng)以二進(jìn)制顯示
}
到了這里,關(guān)于04-2_Qt 5.9 C++開(kāi)發(fā)指南_SpinBox使用的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!