1. 程式人生 > >3.信號槽

3.信號槽

連接 發送 信號 idt ons eight member only hid

1.信號槽最常用的方式:
connect(sender, signal, receiver, slot);第一個對象是發出信號的對象,第二個是發送對象發出的信號,第三個是接收信號的對象,第四個是接收對象在接收到信號後需要調用的函數。
Qt5中QObject::connect()的五個重載:
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);
x18 1
QMetaObject::Connection connect(const QObject *, const char *,
2
                                const QObject *, const char *,
3
                                Qt::ConnectionType);
4
 
5
QMetaObject::Connection connect(const QObject *, const QMetaMethod &,
6
                                const QObject
*, const QMetaMethod &,
7
                                Qt::ConnectionType);
8
 
9
QMetaObject::Connection connect(const QObject *, const char *,
10
                                const char *,
11
                                Qt::ConnectionType) const;
12
 
13
QMetaObject::Connection connect(const QObject
*, PointerToMemberFunction,
14
                                const QObject *, PointerToMemberFunction,
15
                                Qt::ConnectionType)
16
 
17
QMetaObject::Connection connect(const QObject *, PointerToMemberFunction,
18
                                Functor);

2.信號槽要求信號和槽的參數一致,所謂一致,是參數類型一致。如果不一致,允許的情況是槽函數的參數可以比信號參數少。即使如此,槽函數存在的那些參數的順序也必須和信號的前面幾個一致起來。
3.Qt5中,可以將一個對象的信號連接到Lambda表達式。

3.信號槽