使用自定义信号connect
时间: 2023-10-15 08:04:00 浏览: 85
在QT中,使用自定义信号进行connect操作的一般步骤如下:
1. 声明一个自定义信号,使用signals关键字进行声明。
2. 定义一个槽函数,该槽函数将会在信号被触发时被执行。
3. 在需要进行connect操作的地方,使用connect函数将信号连接到槽函数上。
下面是一个简单的示例:
```cpp
class MyObject : public QObject
{
Q_OBJECT
public:
MyObject(QObject *parent = nullptr) : QObject(parent) {}
signals:
void mySignal(int arg);
public slots:
void mySlot(int arg)
{
qDebug() << "mySlot: " << arg;
}
};
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
MyObject obj1;
MyObject obj2;
QObject::connect(&obj1, SIGNAL(mySignal(int)), &obj2, SLOT(mySlot(int)));
emit obj1.mySignal(123);
return a.exec();
}
```
在上述示例中,我们定义了一个名为mySignal的信号,该信号带有一个int类型的参数。我们还定义了一个名为mySlot的槽函数,该槽函数也带有一个int类型的参数,它将在信号被触发时被执行。在main函数中,我们创建了两个MyObject对象obj1和obj2,并使用connect函数将obj1的mySignal信号连接到obj2的mySlot槽函数上。最后我们使用emit关键字触发obj1的mySignal信号,从而调用obj2的mySlot槽函数并输出相应的信息。
阅读全文