• QT QSpinBox 整数计数器控件 使用详解


            本文详细的介绍了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 其它文章 :


    1 新建界面

            新建一个测试项目,修改界面添加 QSpinBox 控件,添加几个按钮

    2 获取数值

            主要用到了 value() 函数

    1. /* 获取数值 */
    2. void MainWindow::on_pushButton_clicked()
    3. {
    4. QMessageBox::information(this,"提示",QString::number(ui->spinBox->value()));
    5. }

    3 设置前后缀

            主要用到了 setPrefix()  setSuffix()  函数, 设置完前缀后缀之后调整数字前后缀都有,需要取消则赋NULL

    1. /* 设置前缀 */
    2. void MainWindow::on_pushButton_2_clicked()
    3. {
    4. ui->spinBox->setPrefix(ui->lineEdit->text()); //设置前缀
    5. }
    6. /* 设置后缀 */
    7. void MainWindow::on_pushButton_3_clicked()
    8. {
    9. ui->spinBox->setSuffix(ui->lineEdit->text()); //设置后缀
    10. }

    4 设置最大/小值

            主要用到了 setMaximum()  setMinimum()  函数

    1. /* 设置最大值 */
    2. void MainWindow::on_pushButton_4_clicked()
    3. {
    4. ui->spinBox->setMaximum(ui->lineEdit_2->text().toInt());
    5. }
    6. /* 设置最小值 */
    7. void MainWindow::on_pushButton_5_clicked()
    8. {
    9. ui->spinBox->setMinimum(ui->lineEdit_2->text().toInt());
    10. }

    5 进制转换

            主要用到了 setDisplayIntegerBase() 函数

    1. /* 进制转换 */
    2. void MainWindow::on_pushButton_6_clicked()
    3. {
    4. ui->spinBox_2->setDisplayIntegerBase(2);
    5. ui->spinBox_2->setValue(ui->spinBox->value());
    6. ui->spinBox_3->setDisplayIntegerBase(16);
    7. ui->spinBox_3->setValue(ui->spinBox->value());
    8. }

     6 关联信号槽

            关联信号槽控件的每次响应都会发出信号

    1. void slotSpinBox();
    2. connect(ui->spinBox, SIGNAL(valueChanged(int)), this, SLOT(slotSpinBox()));
    3. /* 槽函数 */
    4. void MainWindow::slotSpinBox()
    5. {
    6. QMessageBox::information(this,"提示",QString::number(ui->spinBox->value()));
    7. }

    7 优化信号

            步骤5中,如果要输入50,第一次变动会弹出5,加完0后会弹出50

    ui->spinBox->setKeyboardTracking(false);

    加入效果:

    不加入效果:

    8 QSS优化

            效果:可以设置背景、边框、向上按钮、向下按钮

     9 main.cpp

    1. /******************************************************************************
    2. * Copyright CSDN 双子座断点 Co., Ltd.
    3. * Copyright www.dreambeging.vip Co., Ltd.
    4. * All right reserved. See COPYRIGHT for detailed Information.
    5. *
    6. * @file main.cpp
    7. * @project QSpinBox_test
    8. * @version V 1.0
    9. *
    10. * @author 断点
    11. * @date 2022/12/2
    12. * @history
    13. *****************************************************************************/
    14. #include "mainwindow.h"
    15. #include
    16. #include
    17. int main(int argc, char *argv[])
    18. {
    19. QApplication a(argc, argv);
    20. MainWindow w;
    21. QString qss;
    22. QFile qssFile("D:/PNG/myqss.qss");
    23. qssFile.open(QFile::ReadOnly);
    24. if(qssFile.isOpen())
    25. {
    26. qss = QLatin1String(qssFile.readAll());
    27. qApp->setStyleSheet(qss);
    28. qssFile.close();
    29. }
    30. w.show();
    31. return a.exec();
    32. }

    10 mainwindow.h

    1. /******************************************************************************
    2. * Copyright CSDN 双子座断点 Co., Ltd.
    3. * Copyright www.dreambeging.vip Co., Ltd.
    4. * All right reserved. See COPYRIGHT for detailed Information.
    5. *
    6. * @file mainwindow.h
    7. * @project QSpinBox_test
    8. * @version V 1.0
    9. *
    10. * @author 断点
    11. * @date 2022/12/2
    12. * @history
    13. *****************************************************************************/
    14. #ifndef MAINWINDOW_H
    15. #define MAINWINDOW_H
    16. #include
    17. #include
    18. #pragma execution_character_set("utf-8")
    19. QT_BEGIN_NAMESPACE
    20. namespace Ui { class MainWindow; }
    21. QT_END_NAMESPACE
    22. class MainWindow : public QMainWindow
    23. {
    24. Q_OBJECT
    25. public:
    26. MainWindow(QWidget *parent = nullptr);
    27. ~MainWindow();
    28. QString QSpinBox_Title;
    29. QString QSpinBox_Version;
    30. QString QSpinBox_BlogText;
    31. private slots:
    32. void on_pushButton_clicked();
    33. void on_pushButton_2_clicked();
    34. void on_pushButton_3_clicked();
    35. void on_pushButton_4_clicked();
    36. void on_pushButton_5_clicked();
    37. void on_pushButton_6_clicked();
    38. void slotSpinBox();
    39. private:
    40. Ui::MainWindow *ui;
    41. };
    42. #endif // MAINWINDOW_H

    11 mainwindow.cpp

    1. /******************************************************************************
    2. * Copyright CSDN 双子座断点 Co., Ltd.
    3. * Copyright www.dreambeging.vip Co., Ltd.
    4. * All right reserved. See COPYRIGHT for detailed Information.
    5. *
    6. * @file mainwindow.cpp
    7. * @project QSpinBox_test
    8. * @version V 1.0
    9. *
    10. * @author 断点
    11. * @date 2022/12/2
    12. * @history
    13. *****************************************************************************/
    14. #include "mainwindow.h"
    15. #include "ui_mainwindow.h"
    16. MainWindow::MainWindow(QWidget *parent)
    17. : QMainWindow(parent)
    18. , ui(new Ui::MainWindow)
    19. {
    20. ui->setupUi(this);
    21. QSpinBox_Title = "QSpinBox CSDN 双子座断点 ";
    22. QSpinBox_Version = "V 1.0 ";
    23. QSpinBox_BlogText = "https://blog.csdn.net/qq_37529913?type=lately/";
    24. setWindowTitle(QSpinBox_Title + QSpinBox_Version + QSpinBox_BlogText);
    25. //ui->spinBox->setKeyboardTracking(false);
    26. connect(ui->spinBox, SIGNAL(valueChanged(int)), this, SLOT(slotSpinBox()));
    27. }
    28. MainWindow::~MainWindow()
    29. {
    30. delete ui;
    31. }
    32. /* 槽函数 */
    33. void MainWindow::slotSpinBox()
    34. {
    35. //QMessageBox::information(this,"提示",QString::number(ui->spinBox->value()));
    36. }
    37. /* 获取数值 */
    38. void MainWindow::on_pushButton_clicked()
    39. {
    40. QMessageBox::information(this,"提示",QString::number(ui->spinBox->value()));
    41. }
    42. /* 设置前缀 */
    43. void MainWindow::on_pushButton_2_clicked()
    44. {
    45. ui->spinBox->setPrefix(ui->lineEdit->text());
    46. }
    47. /* 设置后缀 */
    48. void MainWindow::on_pushButton_3_clicked()
    49. {
    50. ui->spinBox->setSuffix(ui->lineEdit->text());
    51. }
    52. /* 设置最大值 */
    53. void MainWindow::on_pushButton_4_clicked()
    54. {
    55. ui->spinBox->setMaximum(ui->lineEdit_2->text().toInt());
    56. }
    57. /* 设置最小值 */
    58. void MainWindow::on_pushButton_5_clicked()
    59. {
    60. ui->spinBox->setMinimum(ui->lineEdit_2->text().toInt());
    61. }
    62. /* 进制转换 */
    63. void MainWindow::on_pushButton_6_clicked()
    64. {
    65. ui->spinBox_2->setDisplayIntegerBase(2);
    66. ui->spinBox_2->setValue(ui->spinBox->value());
    67. ui->spinBox_3->setDisplayIntegerBase(16);
    68. ui->spinBox_3->setValue(ui->spinBox->value());
    69. }

    12 样式表

    QT 控件重绘_双子座断点的博客-CSDN博客_qt 重绘

    QT 样式表_双子座断点的博客-CSDN博客

    QT 样式表属性完整版_双子座断点的博客-CSDN博客

    Qt 系统字体_双子座断点的博客-CSDN博客

    13 扩展链接

            全部资源下载链接: https://download.csdn.net/download/qq_37529913/87232939

    14 其它文章 :

    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

  • 相关阅读:
    高级数据结构—线段树(一)
    标准I/O和系统I/O的本质区别
    基于JavaSwing开发2048数字小游戏 课程设计 大作业 毕业设计
    JAVA实训第一天
    CF1165F2(二分答案)
    webpack从0开始基本使用方法
    软件测试功能测试全套常见面试题【开放性思维题】面试总结4-3
    题目0056-员工出勤
    如何将Word转成PDF格式?这三种方法总有一个适合你
    linux 下使用 sar -n 命令查看Kbps、bps的带宽速率
  • 原文地址:https://blog.csdn.net/qq_37529913/article/details/128147211