最近學習Qt,發現新大陸,這里做下記錄。

主要內容就是原始Qt4的信號槽連接方式,以及Qt5新版的連接方式,還有件事簡單演示一下lambda表達式的使用方式
代碼如下
/*
* 作者:張建偉
* 時間:2018年4月1日
* 簡述:該Demo僅僅用於測試和演示Qt5與Qt4的連接方式以及最新的槽函數支持lambda表達式
*/
#include "widget.h"
#include "ui_widget.h"
#include <QDebug>
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
// 傳統Qt是連接方式
// 傳統Qt4連接方式為 信號發送者,信號,信號接受者,處理函數
QObject::connect(ui->pushButton,SIGNAL(clicked(bool)),this,SLOT(qT4_slot()));
//Qt5連接方式
//其實這么寫的方式和Qt4沒有啥卻別,只是在Qt4 中引用了信號槽,在簡單的使用時沒有問題,但是在龐大的工程中,信號和曹 僅僅是宏替換,在編譯的時候沒有安全監測
//Qt5的新方法,在編譯的時候就會有監測,如果我們手誤操作失誤,就會出現問題
QObject::connect(ui->pushButton_2,&QPushButton::clicked,this,&Widget::qT5_slot);
//Qt5 Lambda表達式
//這里需要注意 Lambda表達式是C++ 11 的內容,所以,需要再Pro項目文件中加入 CONFIG += C++ 11
QObject::connect(ui->pushButton_3,&QPushButton::clicked,[=](){qDebug()<<"lambda 表達式";});
}
Widget::~Widget()
{
delete ui;
}
void Widget::qT4_slot()
{
qDebug()<< "This is Qt 4 Connect method";
}
void Widget::qT5_slot()
{
qDebug()<< "This is Qt 5 Connect method";
}

