QDoubleSpinBox 如果对您有用记得点赞哦)
QDoubleSpinBox 类提供了一个用于处理浮点值微调框小部件。与 QSpinBox 作用基本一样,与 QSpinBox 不同的是,QDoubleSpinBox 类处理的是浮点值数据。
例子
用一个 QDoubleSpinBox 来调节程序窗口的整体大小。
头文件“mainwindow.h”具体代码如下。
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QDoubleSpinBox>
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr);
~MainWindow();
private:
/* 声明一个QDoubleSpinBox对象 */
QDoubleSpinBox *doubleSpinBox;
private slots:
/* 槽函数 */
void doubleSpinBoxValueChanged(double);
};
#endif // MAINWINDOW_H
源文件“mainwindow.cpp”具体代码如下。
#include "mainwindow.h"
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
this->setGeometry(1000, 400, 800, 480);
/* 实例化和设置显示的位置与大小 */
doubleSpinBox = new QDoubleSpinBox(this);
doubleSpinBox->setGeometry((this->width() - 200) / 2,
(this->height() - 30) / 2,
200, 30);
/* 设置前缀 */
doubleSpinBox->setPrefix("窗口大小");
/* 设置后缀 */
doubleSpinBox->setSuffix("%");
/* 设置范围 */
doubleSpinBox->setRange(50.00, 100.00);
/* 设置初始值 */
doubleSpinBox->setValue(100.00);
/* 设置步长 */
doubleSpinBox->setSingleStep(0.1);
/* 信号槽连接 */
connect(doubleSpinBox, SIGNAL(valueChanged(double)),
SLOT(doubleSpinBoxValueChanged(double)));
}
MainWindow::~MainWindow()
{
}
void MainWindow::doubleSpinBoxValueChanged(double value)
{
/* 重新计算窗口的宽与高 */
int w = 800 * value / 100;
int h = 480 * value / 100;
/* 重新设置窗口的宽与高 */
this->setGeometry(1000, 400, w, h);
/* 重新设置doubleSpinBox的显示位置 */
doubleSpinBox->setGeometry((this->width() - 200) / 2,
(this->height() - 30) / 2,
200, 30);
}
运行效果: