您的位置:首页 > 编程语言 > Qt开发

QT4信号连接与QT5的区别

2018-01-08 23:30 471 查看
QT4信号连接与QT5的区别

QT4信号与槽

1. 申明槽函数必须增加public slots

2. SIGNAL SLOT 将函数转为字符串,不进行错误检查(connect中信号和槽需要增加SIGNAL 和SLOT)

3. 槽函数和信号一致(参数,返回值),没有返回值

头文件中申明

public slots:

void MySlot();

void MySlot(int, QString);

源文件中:

connect(&m_send, SIGNAL(TestSign()), this, SLOT(MySlot()));

connect(&m_send, SIGNAL(TestSign(int, QString)), this, SLOT(MySlot(int, QString)));

QT5信号与槽:

(1) SIGNAL SLOT 会进行错误检查

(2) 槽可以是任意的成员函数,普通全局函数和静态函数

(3) 槽函数和信号一致(参数,返回值),没有返回值

//重载情况下使用
函数指针

void (MyWidget::*signalOne)() = &MyWidget::testSignalOne;

void (MyWidget::*slotOne)() = &MyWidget::testSlotOne;

connect(this, signalOne, this, slotOne);

void (MyWidget::*signalTwo)(int) = &MyWidget::testSignalOne(int);

void (MyWidget::*slotTwo)(int) = &MyWidget::testSlotOne(int);

connect(this, signalTwo, this, slotTwo);

// 非重载可以直接使用

connect(this, &MyWidget::testSignal, this, &MyWidget::testSlot);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  QT qt5 qt4 C++