在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的官方文檔。