实现用信号和槽,如果同学叫我了,我就出去玩 如果同学叫我了 ,我就出去玩,去爬山。两个案例。
时间: 2024-04-12 10:31:04 浏览: 115
2.QString,信号与槽,设计ui的两种方式
对于这个问题,你可以使用Qt框架中的信号和槽机制来实现。下面是两个案例的示例代码:
案例1:同学叫我了,我就出去玩。
```cpp
#include <QObject>
class MyClass : public QObject
{
Q_OBJECT
public:
MyClass(QObject *parent = nullptr) : QObject(parent) {}
signals:
void friendCalled();
public slots:
void play()
{
// 收到信号后执行的操作
qDebug() << "我出去玩了";
}
};
int main()
{
MyClass myObject;
QObject::connect(&myObject, &MyClass::friendCalled, &myObject, &MyClass::play);
// 模拟同学叫我
emit myObject.friendCalled();
return 0;
}
```
案例2:同学叫我了,我就出去爬山。
```cpp
#include <QObject>
class MyClass : public QObject
{
Q_OBJECT
public:
MyClass(QObject *parent = nullptr) : QObject(parent) {}
signals:
void friendCalled();
public slots:
void play()
{
// 收到信号后执行的操作
qDebug() << "我出去爬山了";
}
};
int main()
{
MyClass myObject;
QObject::connect(&myObject, &MyClass::friendCalled, &myObject, &MyClass::play);
// 模拟同学叫我
emit myObject.friendCalled();
return 0;
}
```
在以上两个案例中,我们创建了一个名为`MyClass`的类,继承自`QObject`。该类定义了一个信号`friendCalled()`,表示同学叫我了。然后,我们在类中定义了一个槽函数`play()`,在该槽函数中执行出去玩或出去爬山的操作。
在`main()`函数中,我们创建了`MyClass`的对象`myObject`,并将信号`friendCalled()`连接到槽函数`play()`上。最后,通过发射信号`emit myObject.friendCalled()`来触发相应的操作。
请注意,以上代码只是示例,实际使用时可能需要根据具体情况进行适当修改。
阅读全文