Qt中parent()函數(shù)的具體使用
情景(需求)抽象:
A類對象是B類對象的成員變量。
B類對象是A類對象的父親。
A類對象中包含按鈕,點擊按鈕,調(diào)用B類的成員函數(shù)。
示例:
A類:
#pragma once
#include <QWidget>
#include "ui_QtWidgetsClass.h"
class QtWidgetsClass : public QWidget
{
Q_OBJECT
public:
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.h"
class QtWidgetsClass;
class QtWidgetsApplication1 : public QMainWindow
{
Q_OBJECT
public:
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/QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QtWidgetsApplication1 m;
m.show();
return a.exec();
}
效果:點擊按鈕,對象c調(diào)用其parent對象m的xxx()函數(shù)。
進一步拓展,當有多重嵌套時,也可使用該方法。
QtWidgetsApplication1* w = (QtWidgetsApplication1*)(this->parent());
不斷獲取parent(),然后調(diào)用相關(guān)函數(shù)。
到此這篇關(guān)于Qt中parent()函數(shù)的具體使用的文章就介紹到這了,更多相關(guān)Qt parent()內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
有關(guān)C++中類類型轉(zhuǎn)換操作符總結(jié)(必看篇)
下面小編就為大家?guī)硪黄嘘P(guān)C++中類類型轉(zhuǎn)換操作符總結(jié)(必看篇)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-01-01
C++容器適配與棧的實現(xiàn)及dequeque和優(yōu)先級詳解
這篇文章主要介紹了C++容器適配與棧的實現(xiàn)及dequeque和優(yōu)先級,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧2022-10-10
C語言學(xué)生成績管理系統(tǒng)課程設(shè)計
這篇文章主要為大家詳細介紹了C語言學(xué)生成績管理系統(tǒng)課程設(shè)計,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-01-01
C++實現(xiàn)LeetCode(160.求兩個鏈表的交點)
這篇文章主要介紹了C++實現(xiàn)LeetCode(160.求兩個鏈表的交點),本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下2021-07-07
Qt 元對象系統(tǒng)中QMetaEnum的應(yīng)用
本文主要介紹了Qt 元對象系統(tǒng)中QMetaEnum的應(yīng)用,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2025-11-11

