日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Qt文档阅读笔记-Visual Parent的初步理解(获取QML中的根节点及其子结点)

發布時間:2025/3/15 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Qt文档阅读笔记-Visual Parent的初步理解(获取QML中的根节点及其子结点) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Qt有個繼承樹
在Widgets里面,可以通過setParent加進去!

搞QML的都知道QQmlContext繼承于QObject
辣么問題在C++和QML交換的時候!
能不能通過QQmlContext的root結點,強轉為QObject然后獲取child呢?
答案是不能
如下偽代碼:

void Widget::getDataInfo() {QObject *pRoot = qobject_cast<QObject *>(ui->quickWidget->rootContext());Q_ASSERT(pRoot);qDebug()<<pRoot->children(); }


qml文件如下:

import QtQuick 2.0 import Data 1.0Item {Text {id: myTexttext: qsTr("Hello world")color: "blue"font.pixelSize: 50font.family: "Times New Roman"anchors.centerIn: parent}Data {id: datatext: myText.textsize: myText.font.pixelSize}}

運行截圖如下:

然并卵

?

通過官方文檔,知道了一個Visual Parent的概概念
可以通過QQuickItem獲取children
然而:QQuickItem也繼承了QObject

這樣做,就可以做一些網友們所說的“歪門邪道”的事情了!
偽代碼如下:

void Widget::getDataInfo() {QQuickItem *pRoot = ui->quickWidget->rootObject();Q_ASSERT(pRoot);qDebug()<<pRoot->children();m_data = qobject_cast<Data *>(pRoot->children()[1]);qDebug() << m_data->text(); }

qml文件如上面的qml;
運行截圖

?

再隨便放一張程序運行截圖:

總結

以上是生活随笔為你收集整理的Qt文档阅读笔记-Visual Parent的初步理解(获取QML中的根节点及其子结点)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。