Qt信号与槽第三章
2017-12-24 21:17
232 查看
mainwindow.h
signalandslot.h
signalandslot.cpp
注意
emit DateChanged(Data)//抛出信号
信号的传参
Qt4 和Qt5 的自定义建立信号与槽的方式不同
Qt4
#ifndef MAINWINDOW_H #define MAINWINDOW_H #include "signalandslot.h" #include <QMainWindow> namespace Ui { class MainWindow; } class MainWindow : public QMainWindow { Q_OBJECT public: explicit MainWindow(QWidget *parent = 0); ~MainWindow(); signalandslot a,b; private slots: void on_action_2_triggered(); private: Ui::MainWindow *ui; }; #endif // MAINWINDOW_H
signalandslot.h
#ifndef SIGNALANDSLOT_H #define SIGNALANDSLOT_H #include <QObject> class signalandslot : public QObject { Q_OBJECT public: explicit signalandslot(QObject *parent = 0); int Data; signals: void DataChanged(int Data); public slots: void SetData(int Data); }; #endif // SIGNALANDSLOT_Hmainwindow.cpp
#include "mainwindow.h" #include "ui_mainwindow.h" #include "signalandslot.h" MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); ui->statusBar->showMessage(tr("a.Data=%1 b.Data=%2").arg(a.Data).arg(b.Data)); //Qt5的写法 connect(&b,&signalandslot::DataChanged,&a,&signalandslot::SetData); } MainWindow::~MainWindow() { delete ui; } void MainWindow::on_action_2_triggered() { b.SetData(100); ui->statusBar->showMessage(tr("a.Data=%1 b.Data=%2").arg(a.Data).arg(b.Data)); } void MainWindow::on_pushButton_clicked() { ui->statusBar->showMessage(tr("b.Data=%1").arg(b.Data)); }
signalandslot.cpp
#include "signalandslot.h" signalandslot::signalandslot(QObject *parent) : QObject(parent) { Data=0; } void signalandslot::SetData(int inputData){ if(Data!=inputData){ Data=inputData; //emit抛出信号 emit DataChanged(Data); } }
注意
emit DateChanged(Data)//抛出信号
信号的传参
Qt4 和Qt5 的自定义建立信号与槽的方式不同
Qt4
QObject::connect(&newspaper,SIGNAL(newPaper(QString)), &reader, SLOT(receiveNewspaper(QString)));Qt5
QObject::connect(&newspaper,&Newspaper::newPaper, &reader, &Reader::receiveNewspaper);
相关文章推荐
- Qt信号的槽
- Qt 信号和槽 一
- 【QT】:QT实现一个信号与多个槽的关联和实现多个信号与一个槽的关联
- Qt学习记录--02 Qt的信号槽机制介绍(含Qt5与Qt4的差异对比)
- QT的信号和槽
- Qt ---- 信号和槽
- QT 线程间QThread的信号和槽
- QT的信号与槽机制介绍
- qt的Qt::ConnectionType详细以及信号参数传递
- 【QT开发】信号转发器QSignalMapper的使用
- Qt中自定义槽和信号的简单示例
- qt中信号和槽的总结
- QT 信号与槽 最简单例子
- qt信号和槽机制
- 用ISO C++实现自己的信号槽(Qt另类学习)
- Qt编程-信号和槽
- Qt学习(三) QT信号:(signal)和QT槽:(slot)
- Qt学习--事件/信号
- QT信号和槽
- QT 自定义QLIstWidgetItem 点击发出信号,并且知道是哪个item