QT 关于槽的,click下pushButton使spinBox的值恢复为原来的值 的函数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了QT 关于槽的,click下pushButton使spinBox的值恢复为原来的值 的函数相关的知识,希望对你有一定的参考价值。

参考技术A 其实可以这样实现:在界面运行的时候用一个变量记录此时的spinBox的数值
在单价pushButton后,把变量的值赋给spinBox即可。追问

应该用什么函数把变量值付给spinBox

追答

不用什么函数,直接在类的构造函数中定义一个变量即可。 eg: int value;

on_pushButton_click()
ui.spinBox->setValue(value);

QT中槽的使用

一、建立槽和按钮之间的连接

connect(信号发送者,发送的信号,信号接收者,信号接收者的槽函数)

1、例子

connect(ui->pushButton,SIGNAL(clicked(bool)),this,SLOT(showinfo()));
解释:
信号反发送者:pushButton(这是一个按钮),发送信号:clicked(点击按钮),信号接收者:this(本类),信号接收者的槽函数:showinfo(点击按钮后响应的函数)

二、槽函数的定义

(1)槽函数

protected slots:
       void showinfo();

(2)自定义带参数的槽函数

signals:
      void mysignal(); //自定义信号(不需要实现),发送信号emit mysignal()

 

槽函数应用例子:

1、在头文件中定义槽函数

 1 #ifndef MAINWINDOW_H
 2 #define MAINWINDOW_H
 3 
 4 #include <QMainWindow>
 5 
 6 namespace Ui {
 7 class MainWindow;
 8 }
 9 
10 class MainWindow : public QMainWindow
11 {
12     Q_OBJECT
13 
14 public:
15     explicit MainWindow(QWidget *parent = 0);
16     ~MainWindow();
17 //槽函数声明
18 protected slots:
19     void showinfo();//槽函数
20     void myslot();
21 
22 //自定义带参数的槽函数
23  signals:
24     void mysignal(); //自定义信号(不需要实现),发送信号emit mysignal()
25     void sendNum(int num);
26 
27 private slots:
28     void on_closbt_clicked();
29     void  getNum(int num);
30 
31 private:
32     Ui::MainWindow *ui;
33 };
34 
35 #endif // MAINWINDOW_H

 

2、在源文件中建立按钮与槽函数之间的连接

 1 #include "mainwindow.h"
 2 #include "ui_mainwindow.h"
 3 #include <QDebug.h>
 4 #include <QtWidgets/QStackedLayout>
 5 #include "form.h"
 6 
 7 MainWindow::MainWindow(QWidget *parent) :
 8     QMainWindow(parent),
 9     ui(new Ui::MainWindow)
10 {
11     ui->setupUi(this);
12     //把按钮的信号与本类的showinfo槽函数关联
13     connect(ui->pushButton,SIGNAL(clicked(bool)),this,SLOT(showinfo()));
14 
15     //把本类的信号mysignal与本类的槽函数myslot()关联
16     connect(this,SIGNAL(mysignal()),this,SLOT(myslot()));
17     connect(this,SIGNAL(sendNum(int)),this,SLOT((int)));
18 }
19 
20 MainWindow::~MainWindow()
21 {
22     delete ui;
23 }
24 
25 //实现槽函数
26 void MainWindow::showinfo()
27 {
28     qDebug()<<"信号与槽函数测试";
29     //发送信号
30     emit mysignal();
31 }
32 
33 void MainWindow::myslot()
34 {
35     qDebug()<<"自定义信号触发";
36 }
37 
38 void MainWindow::getNum(int num)
39 {
40     qDebug()<<num;
41 }
42 
43 
44 void MainWindow::on_closbt_clicked()
45 {
46     emit sendNum(123);
47 }

 

以上是关于QT 关于槽的,click下pushButton使spinBox的值恢复为原来的值 的函数的主要内容,如果未能解决你的问题,请参考以下文章

76.QT槽的机制

pyqt5中的信号槽的使用

Qt pushButton clicked(bool) always false

Qt???PushButton???pressed,released,clicked?????????????????????

qt stacked widget界面中如何用按钮实现换页

qt+opencv图像处理实现笔记