本文详细的介绍了QSpinBox控件的各种操作,例如:获取数值、设置前后缀、设置最大/小值、进制转换、关联信号槽、优化信号、QSS优化、文件源码、样式表 、效果:可以设置背景、边框、向上按钮、向下按钮 等等操作。
本文作者原创,转载请附上文章出处与本文链接。
QT QSpinBox 整数计数器控件(使用详解)目录
1 新建界面
2 获取数值
3 设置前后缀
4 设置最大/小值
5 进制转换
6 关联信号槽
7 优化信号
8 QSS优化
9 main.cpp
10 mainwindow.h
11 mainwindow.cpp
12 样式表
13 扩展链接
14 其它文章 :
新建一个测试项目,修改界面添加 QSpinBox 控件,添加几个按钮
主要用到了 value() 函数
/* 获取数值 */
void MainWindow::on_pushButton_clicked()
{
QMessageBox::information(this,"提示",QString::number(ui->spinBox->value()));
}
主要用到了 setPrefix() setSuffix() 函数, 设置完前缀后缀之后调整数字前后缀都有,需要取消则赋NULL
/* 设置前缀 */
void MainWindow::on_pushButton_2_clicked()
{
ui->spinBox->setPrefix(ui->lineEdit->text()); //设置前缀
}
/* 设置后缀 */
void MainWindow::on_pushButton_3_clicked()
{
ui->spinBox->setSuffix(ui->lineEdit->text()); //设置后缀
}
主要用到了 setMaximum() setMinimum() 函数
/* 设置最大值 */
void MainWindow::on_pushButton_4_clicked()
{
ui->spinBox->setMaximum(ui->lineEdit_2->text().toInt());
}
/* 设置最小值 */
void MainWindow::on_pushButton_5_clicked()
{
ui->spinBox->setMinimum(ui->lineEdit_2->text().toInt());
}
主要用到了 setDisplayIntegerBase() 函数
/* 进制转换 */
void MainWindow::on_pushButton_6_clicked()
{
ui->spinBox_2->setDisplayIntegerBase(2);
ui->spinBox_2->setValue(ui->spinBox->value());
ui->spinBox_3->setDisplayIntegerBase(16);
ui->spinBox_3->setValue(ui->spinBox->value());
}
关联信号槽控件的每次响应都会发出信号
void slotSpinBox();
connect(ui->spinBox, SIGNAL(valueChanged(int)), this, SLOT(slotSpinBox()));
/* 槽函数 */
void MainWindow::slotSpinBox()
{
QMessageBox::information(this,"提示",QString::number(ui->spinBox->value()));
}
步骤5中,如果要输入50,第一次变动会弹出5,加完0后会弹出50
ui->spinBox->setKeyboardTracking(false);
加入效果:
不加入效果:
效果:可以设置背景、边框、向上按钮、向下按钮
/******************************************************************************
* Copyright CSDN 双子座断点 Co., Ltd.
* Copyright www.dreambeging.vip Co., Ltd.
* All right reserved. See COPYRIGHT for detailed Information.
*
* @file main.cpp
* @project QSpinBox_test
* @version V 1.0
*
* @author 断点
* @date 2022/12/2
* @history
*****************************************************************************/
#include "mainwindow.h"
#include
#include
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
QString qss;
QFile qssFile("D:/PNG/myqss.qss");
qssFile.open(QFile::ReadOnly);
if(qssFile.isOpen())
{
qss = QLatin1String(qssFile.readAll());
qApp->setStyleSheet(qss);
qssFile.close();
}
w.show();
return a.exec();
}
/******************************************************************************
* Copyright CSDN 双子座断点 Co., Ltd.
* Copyright www.dreambeging.vip Co., Ltd.
* All right reserved. See COPYRIGHT for detailed Information.
*
* @file mainwindow.h
* @project QSpinBox_test
* @version V 1.0
*
* @author 断点
* @date 2022/12/2
* @history
*****************************************************************************/
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include
#include
#pragma execution_character_set("utf-8")
QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr);
~MainWindow();
QString QSpinBox_Title;
QString QSpinBox_Version;
QString QSpinBox_BlogText;
private slots:
void on_pushButton_clicked();
void on_pushButton_2_clicked();
void on_pushButton_3_clicked();
void on_pushButton_4_clicked();
void on_pushButton_5_clicked();
void on_pushButton_6_clicked();
void slotSpinBox();
private:
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
/******************************************************************************
* Copyright CSDN 双子座断点 Co., Ltd.
* Copyright www.dreambeging.vip Co., Ltd.
* All right reserved. See COPYRIGHT for detailed Information.
*
* @file mainwindow.cpp
* @project QSpinBox_test
* @version V 1.0
*
* @author 断点
* @date 2022/12/2
* @history
*****************************************************************************/
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
QSpinBox_Title = "QSpinBox CSDN 双子座断点 ";
QSpinBox_Version = "V 1.0 ";
QSpinBox_BlogText = "https://blog.csdn.net/qq_37529913?type=lately/";
setWindowTitle(QSpinBox_Title + QSpinBox_Version + QSpinBox_BlogText);
//ui->spinBox->setKeyboardTracking(false);
connect(ui->spinBox, SIGNAL(valueChanged(int)), this, SLOT(slotSpinBox()));
}
MainWindow::~MainWindow()
{
delete ui;
}
/* 槽函数 */
void MainWindow::slotSpinBox()
{
//QMessageBox::information(this,"提示",QString::number(ui->spinBox->value()));
}
/* 获取数值 */
void MainWindow::on_pushButton_clicked()
{
QMessageBox::information(this,"提示",QString::number(ui->spinBox->value()));
}
/* 设置前缀 */
void MainWindow::on_pushButton_2_clicked()
{
ui->spinBox->setPrefix(ui->lineEdit->text());
}
/* 设置后缀 */
void MainWindow::on_pushButton_3_clicked()
{
ui->spinBox->setSuffix(ui->lineEdit->text());
}
/* 设置最大值 */
void MainWindow::on_pushButton_4_clicked()
{
ui->spinBox->setMaximum(ui->lineEdit_2->text().toInt());
}
/* 设置最小值 */
void MainWindow::on_pushButton_5_clicked()
{
ui->spinBox->setMinimum(ui->lineEdit_2->text().toInt());
}
/* 进制转换 */
void MainWindow::on_pushButton_6_clicked()
{
ui->spinBox_2->setDisplayIntegerBase(2);
ui->spinBox_2->setValue(ui->spinBox->value());
ui->spinBox_3->setDisplayIntegerBase(16);
ui->spinBox_3->setValue(ui->spinBox->value());
}
QT 控件重绘_双子座断点的博客-CSDN博客_qt 重绘
QT 样式表_双子座断点的博客-CSDN博客
QT 样式表属性完整版_双子座断点的博客-CSDN博客
Qt 系统字体_双子座断点的博客-CSDN博客
全部资源下载链接: https://download.csdn.net/download/qq_37529913/87232939
QT TextEdit控件_双子座断点的博客-CSDN博客_qt textedit
QT QComboBox使用详解_双子座断点的博客-CSDN博客
QT QtableView操作详解_双子座断点的博客-CSDN博客_qtableview增删改查
Qt QStandardItemModel(1.超级详细用法)_双子座断点的博客-CSDN博客_qstandardmodel
Qt QStandardItemModel(2.超级详细函数)_双子座断点的博客-CSDN博客_qstandarditemmodel点击事件
QT QRadioButton使用详解_双子座断点的博客-CSDN博客_qt radiobutton
QT QLineEdit使用详解_双子座断点的博客-CSDN博客_qt qlineedit
Qt QMessageBox使用详解_双子座断点的博客-CSDN博客_qt message
QChart折线图、饼状图、条形图、曲线图_双子座断点的博客-CSDN博客_qchart样式
QChart属性详解_双子座断点的博客-CSDN博客_setanimationoptions
QCharts QValueAxis使用_双子座断点的博客-CSDN博客_qvalueaxis
Qt 5 等待提示框(开源 动态图)_双子座断点的博客-CSDN博客_qt 等待对话框
QtDataVisualization 数据3D可视化_双子座断点的博客-CSDN博客_qtdatavisualizatio