Qt信号与槽理解

信号槽连接的两种常用方式:
//错误,使用宏的方式连接一定要注意信号和槽的参数
connect(m_firstWindow, SIGNAL(SendData()), m_server, SLOT(PostData())); 
1)connect(m_firstWindow, SIGNAL(SendData(std::vector)), m_server, SLOT(PostData(std::vector)));    //正确
2)connect(m_firstWindow, &FirstWindowClass::SendData, m_server, &ServerClass::PostData);    //正确
第二种连接方式不用传参数,填入函数地址就行了,但是如果槽有重载函数,编译器无法确定哪个重载函数

官网文档翻译:

Qt信号槽用于替代回调函数,信号槽是类型安全的,并且在槽有重载函数的时候能够正确调用槽,而回调函数不能
要使用信号槽,得继承QObject类或它的子类,然后在类内添加Q_OBJECT宏
当信号发出的时候,槽会马上同步调用,而不是异步
信号不需要实现,由moc实现
尽管槽是private的,被connect后依然能被调用
传给SIGNAL宏的签名的参数数量不能小于传给SLOT宏的签名的参数数量

你可能感兴趣的:(Qt)