Qt 子窗体直接调用父窗体成员、函数、控件的方法
QT子窗体调用父窗体成员、函数、控件的方法 说明: 简单点的方法就是用parentWidget函数,子类中调用该函数然后强转成父窗体,就可以调用父窗体公有成员、函数了。
如果想调用父窗体的控件,要么让父窗体提供公有接口,要么直接把ui改成公有成员。 注意如果是在线程调用父窗体ui,最好用信号与槽,不然会出现你意想不到的情况,直接报错崩溃。信号与槽又有5种连接方式(可控制是否阻塞,是否有返回值等)感兴趣自行了解。 多个窗体嵌套其实也差不多。 下面就简单演示一下子窗体调用父窗体(有点取巧了):
Base类是父窗体,child类是子窗体
首先,父类的头文件声明子类。然后将父窗体的ui访问权限修改为public,并添加子窗体对象成员。 父窗体头文件 base.h:
#ifndef BASE_H
#define BASE_H
#include
// 声明子类
class Child;
QT_BEGIN_NAMESPACE
namespace Ui {
class Base; }
QT_END_NAMESPACE
class Base : public QMainWindow
{
Q_OBJECT
public:
Base(QWidget *parent = nullptr);
~Base();
void Test();