QT 信号槽机制
当一个控件发生一种事件 点击 文本变更 聚焦 失焦 之类,产生一个信号。
connect 函数 槽函数 用于捕获信号
当相应信号发出的时候,槽函数被自动触发
除了这个特性之外 槽函数和其他常规函数没有什么特殊区别 能够被public protect private virtual修饰
connect所有的重载 第一个参数都是 const QObject* sender,
connect通常形式为
connect(sender,signal,receiver,slot)
第一个是发出 信号的对象,第二个是 信号,第三个是接受信号的对象,第四个需要调用的是函数
connect(closeButton, SIGNAL(clicked()), this, SLOT(close()));
比方这句话 closeButton 控件触发的点击事件 ,会自动调用当前this对象的close()函数
-------------------------------------------------------------------------------------------------------------
Qt的重载类型
1 QMetaObject::Connection connect(const QObject *sender, const char *signal,
const QObject*receiver, const char *member, Qt::ConnectionType = Qt::AutoConnection);
2 QMetaObject::Connectionconnect(const QObject *sender, const QMetaMethod &signal,
const QObject*receiver, const QMetaMethod &method,
Qt::ConnectionType type = Qt::AutoConnection);
3 QMetaObject::Connectionconnect(const QObject *sender, const char *signal,
const char*member, Qt::ConnectionType type = Qt::AutoConnection) const;
template<typenamePointerToMemberFunction>
4 QMetaObject::Connectionconnect(const QObject *sender, PointerToMemberFunction signal,
const QObject *receiver,PointerToMemberFunction method, Qt::ConnectionType type = Qt::AutoConnection);
template<typenamePointerToMemberFunction, typename Functor>
5 QMetaObject::Connectionconnect(const QObject *sender,
PointerToMemberFunction signal, Functorfunctor);
template<typenamePointerToMemberFunction, typename Functor>
6 QMetaObject::Connectionconnect(const QObject *sender, PointerToMemberFunction signal,
const QObject*context, Functorfunctor, Qt::ConnectionType type = Qt::AutoConnection);
第一个参数均为控件对象,
第二个参数为然后sinal 分为const char*字符串(1~3)和函数(4~6) //const char*应该是文本text控件要用到的
后两个参数除了基本都是 1对象+字符串 2对象+函数 3字符串 4控件对象+函数 5函数 6控件对象和函数
上边函数分为QmetaMethod对象 和 普通函数