Qt--信号与槽机制

一、什么是信号槽机制

       信号槽机制是Qt的核心特性,是对C/C++的拓展,应用于对象与对象之间的通信。信号槽的处理依赖于moc(Meta Object Compiler)工具。

       信号槽机制很好地完成了界面操作的响应,类似于MFC和matlab GUI中的callback函数。信号与槽会通过connect函数进行连接,信号会在某种情况或者动作下由某个对象发射,连接了该信号的槽会接收到该信号,然后执行相应的操作。

二、信号槽机制的连接方式

       比较常用的连接方式是,对象A发射信号,对象B的槽函数接收信号做出响应。函数原型:QMetaObject::Connection connect (const QObject *, const char*, const QObject*, const char*, Qt::ConnectionType)。一般只使用前面的四个参数,即connect(sender, signal, receiver, slot)。sender发送signal,然后receiver的slot接收信号。

       以下举个小例子,点击按钮关闭窗口。

       创建Qt Widgets Application,基于QMainWindow类,不包含ui文件。修改MainWindow构造函数如下:

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
    QPushButton *btn1 = new QPushButton(tr("Close"));//创建一个按钮控件
    QHBoxLayout *mainLayout = new QHBoxLayout;
    main

你可能感兴趣的:(Qt,Qt,信号与槽,自定义信号,自定义槽)