在Qt中,connect函数用于连接信号和槽,实现对象之间的通信。其基本用法如下:
connect(sender, signal, receiver, slot);
其中,sender和receiver可以是任意Qt对象,signal和slot是对象的成员函数指针,用于指定要连接的信号和槽。
具体用法如下:
示例代码如下:
class Sender : public QObject
{
Q_OBJECT
signals:
void mySignal(int data);
};
class Receiver : public QObject
{
Q_OBJECT
public slots:
void mySlot(int data) {
qDebug() << "Received data:" << data;
}
};
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
Sender sender;
Receiver receiver;
QObject::connect(&sender, &Sender::mySignal, &receiver, &Receiver::mySlot);
// 发出信号
emit sender.mySignal(42);
return app.exec();
}
运行上述示例代码,会输出"Received data: 42"。可以看到,当sender对象发出mySignal信号时,receiver对象的mySlot槽函数会被自动调用,并将参数data设置为42。
除了基本用法外,connect函数还支持一些高级功能,如使用lambda表达式作为槽函数、使用Qt5的新连接语法等。详细用法可以参考Qt的官方文档。