qt 怎么在一个类中调用另一个类的函数 比如我创建了一个类叫做hero hero中有个函数叫 man_animation();我要在我创建的另一个类widget中的connect中的lambda函数中调用 man_animation();widget是继承了QWidget的主函数,怎么做
时间: 2023-07-15 22:14:06 浏览: 91
可以在widget类的构造函数中实例化hero类,然后在lambda函数中调用hero类的man_animation()函数。具体代码如下:
```cpp
// hero.h
class Hero {
public:
void man_animation();
};
// widget.h
#include "hero.h"
class Widget : public QWidget {
public:
Widget(QWidget *parent = nullptr);
private:
Hero *hero; // 在Widget类中实例化Hero类
};
// widget.cpp
Widget::Widget(QWidget *parent) : QWidget(parent) {
hero = new Hero(); // 实例化Hero类
connect(button, &QPushButton::clicked, this, [=]() {
hero->man_animation(); // 在lambda函数中调用man_animation()函数
});
}
```
在构造函数中,先实例化Hero类,然后在lambda函数中通过实例化的hero对象调用man_animation()函数。注意,因为hero是在堆上创建的,所以在Widget类销毁时需要手动delete hero。
阅读全文