QObject::connect(&button, &QPushButton::clicked, &QApplication::quit);
https://www.devbean.net/2012/08/qt-study-road-2-signal-slot/
// !!! Qt 5 #include <QApplication> #include <QPushButton> int main(int argc, char *argv[]) { QApplication app(argc, argv); QPushButton button("Quit"); QObject::connect(&button, &QPushButton::clicked, &QApplication::quit); button.show(); return app.exec(); }
这里要仔细分析QObject::connect()这个函数。
在 Qt 5 中,QObject::connect()有五个重载:
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | QMetaObject::Connection connect(const QObject *, const char *,                                 const QObject *, const char *,                                 Qt::ConnectionType); QMetaObject::Connection connect(const QObject *, const QMetaMethod &,                                 const QObject *, const QMetaMethod &,                                 Qt::ConnectionType); QMetaObject::Connection connect(const QObject *, const char *,                                 const char *,                                 Qt::ConnectionType) const; QMetaObject::Connection connect(const QObject *, PointerToMemberFunction,                                 const QObject *, PointerToMemberFunction,                                 Qt::ConnectionType) QMetaObject::Connection connect(const QObject *, PointerToMemberFunction,                                 Functor); | 
这五个重载的返回值都是QMetaObject::Connection,现在我们不去关心这个返回值。下面我们先来看看connect()函数最常用的一般形式:
| 1 2 3 | // !!! Qt 5 connect(sender,   signal,         receiver, slot); | 
这是我们最常用的形式。connect()一般会使用前面四个参数,第一个是发出信号的对象,第二个是发送对象发出的信号,第三个是接收信号的对象,第四个是接收对象在接收到信号之后所需要调用的函数。也就是说,当 sender 发出了 signal 信号之后,会自动调用 receiver 的 slot 函数。

 
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号