码迷,mamicode.com
首页 > 其他好文 > 详细

QT中槽的使用

时间:2017-11-11 11:39:27      阅读:188      评论:0      收藏:0      [点我收藏+]

标签:建立   win   strong   一个   nal   inf   解释   mes   接收   

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

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中槽的使用

标签:建立   win   strong   一个   nal   inf   解释   mes   接收   

原文地址:http://www.cnblogs.com/wurenzhong/p/7818098.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!