网站设计价钱,苏州网站建设公司排名,网络服务合同范本,有没有专门做宝宝用品的网站情景(需求)抽象#xff1a;
A类对象是B类对象的成员变量。
B类对象是A类对象的父亲。
A类对象中包含按钮#xff0c;点击按钮#xff0c;调用B类的成员函数。
示例#xff1a;
A类#xff1a;
#pragma once#include QWidget
#include ui_QtWidgetsCla…情景(需求)抽象
A类对象是B类对象的成员变量。
B类对象是A类对象的父亲。
A类对象中包含按钮点击按钮调用B类的成员函数。
示例
A类
#pragma once#include QWidget
#include ui_QtWidgetsClass.hclass QtWidgetsClass : public QWidget
{Q_OBJECTpublic:QtWidgetsClass(QWidget *parent nullptr);~QtWidgetsClass();void yyy();
private:Ui::QtWidgetsClassClass ui;
};#include QtWidgetsClass.h
#include QtWidgetsApplication1.h
QtWidgetsClass::QtWidgetsClass(QWidget *parent): QWidget(parent)
{ui.setupUi(this);connect(ui.pushButton, QPushButton::clicked, this, QtWidgetsClass::yyy);
}QtWidgetsClass::~QtWidgetsClass()
{
}
void QtWidgetsClass::yyy()
{QtWidgetsApplication1* w (QtWidgetsApplication1*)(this-parent());w-xxx();
}
B类
#pragma once#include QtWidgets/QMainWindow
#include ui_QtWidgetsApplication1.hclass QtWidgetsClass;
class QtWidgetsApplication1 : public QMainWindow
{Q_OBJECTpublic:QtWidgetsApplication1(QWidget *parent nullptr);~QtWidgetsApplication1();void xxx();
private:Ui::QtWidgetsApplication1Class ui;QtWidgetsClass* c;
};#include QtWidgetsApplication1.h
#include QtWidgetsClass.h
#include qdebug.h
QtWidgetsApplication1::QtWidgetsApplication1(QWidget *parent): QMainWindow(parent)
{ui.setupUi(this);c new QtWidgetsClass(this);
}QtWidgetsApplication1::~QtWidgetsApplication1()
{
}
void QtWidgetsApplication1::xxx()
{qDebug() QtWidgetsApplication1::xxx();
}
main.cpp:
#include QtWidgetsApplication1.h
#include QtWidgets/QApplicationint main(int argc, char *argv[])
{QApplication a(argc, argv);QtWidgetsApplication1 m;m.show();return a.exec();
}效果点击按钮对象c调用其parent对象m的xxx()函数。
进一步拓展当有多重嵌套时也可使用该方法。 QtWidgetsApplication1* w (QtWidgetsApplication1*)(this-parent()); 不断获取parent()然后调用相关函数。