最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

qml中QtObject類型的用法小結(jié)

 更新時間:2024年01月30日 10:48:46   作者:@十三阿哥  
QtObject 類型是一個非可視元素,僅包含objectName屬性,如果需要一個非常輕量級的類型來包含一組自定義屬性,那么創(chuàng)建一個QtObject,本文給大家介紹qml中QtObject類型的使用,感興趣的朋友一起看看吧

一、描述

QtObject 類型是一個非可視元素,僅包含 objectName 屬性。
如果需要一個非常輕量級的類型來包含一組自定義屬性,那么創(chuàng)建一個 QtObject 會很合適:

import QtQuick 2.0
Item 
{
    QtObject 
    {
        id: attributes
        property string name
        property int size
        property variant attributes
    }
    Text { text: attributes.name }
}

它對于 C++ 集成也很有用,因為它繼承自 QObject。

二、屬性成員

objectName : string

此屬性保存對象實例的 QObject::objectName。
這允許 C++ 應(yīng)用程序使用 QObject::findChild() 方法在 QML 組件中定位項目。
例如,以下 C++ 應(yīng)用程序定位子 Rectangle 項并動態(tài)更改其顏色值:

// MyRect.qml
import QtQuick 2.0
Item 
{
    width: 200; height: 200
    Rectangle 
    {
        anchors.fill: parent
        color: "red"
        objectName: "myRect"
    }
}
// main.cpp
QQuickView view;
view.setSource(QUrl::fromLocalFile("MyRect.qml"));
view.show();
QQuickItem *item = view.rootObject()->findChild<QQuickItem*>("myRect");
if (item)
    item->setProperty("color", QColor(Qt::yellow));

三、其他

私有化,,,來看以下例子

// MyRectangle .qml

import QtQuick 2.0
import QtQml 2.12
Rectangle {
    id: rect
    width: 100
    height: 100
    color: "green"
    Component.onCompleted: {
        console.log(attributes.usrName)
    }
    property string hobby: ""
    property alias attr: attributes
    QtObject {
        id: attributes
        property string usrName: "zhangSan"
    }
}

// main.qml

import QtQuick 2.0
import QtQuick.Controls 2.12
import QtQuick.Window 2.12
import QtQuick.Layouts 1.3
import QtQml 2.12
Window {
    visible: true
    width: 800
    height: 480
    title: qsTr("Hello World")
    Row {
        MyRectangle {
            hobby: "play games..."
            Component.onCompleted: {
                attr.usrName = "zhangSan"
                console.log(attr.usrName)
            }
        }
    }
}

MyRectangle組件中的 hobby屬性可以直接訪問賦值,例如在main.qml中 MyRectangle{ hobby: “xxx” … }。
但是如何使其不能被訪問 呢???
就可以將其放置在QtObject類型中。例如,MyRectangle.qml中:

QtObject {
    id: attributes
    property string usrName: "zhangSan"
}

此時,在main.qml中就不能直接通過 MyRectangle { usrName: “xxx” }這種形式訪問賦值了,否則報錯如下:
qrc:/main.qml:17 Cannot assign to non-existent property “usrName”

// main.qml
 Row {
     MyRectangle {
		hobby: "play games..."
         usrName: "zzzz"	// 錯誤,
         Component.onCompleted: {
             attr.usrName = "zhangSan"
             console.log(attr.usrName)
         }
     }
 }

起到了一種類似私有化的作用(僅限在MyRectangle.qml中訪問)。

注意:當然,以上私有化也不是絕對的。。
如果確實需要在main.qml中定義的MyRectangle類型中訪問usrName屬性,
可以事先在MyRectangle.qml中對QtObject類型進行別名設(shè)置,例如

property alias attr: attributes

此時,就可以main.qml中訪問了,,,例如

Component.onCompleted: {
    attr.usrName = "zhangSan"
    console.log(attr.usrName)
}

到此這篇關(guān)于qml中QtObject類型的使用的文章就介紹到這了,更多相關(guān)qml QtObject類型內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Mac OS上搭建Apache+PHP+MySQL開發(fā)環(huán)境的詳細教程

    Mac OS上搭建Apache+PHP+MySQL開發(fā)環(huán)境的詳細教程

    這篇文章主要介紹了Mac OS上搭建Apache+PHP+MySQL開發(fā)環(huán)境的詳細教程,包括常見的PHP連接MySQL失敗問題的解決辦法,需要的朋友可以參考下
    2016-01-01
  • QT實現(xiàn)QML側(cè)邊導航欄的最簡方法

    QT實現(xiàn)QML側(cè)邊導航欄的最簡方法

    本文主要介紹了QT實現(xiàn)QML側(cè)邊導航欄的最簡方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-06-06
  • C++實現(xiàn)尋找最低公共父節(jié)點的方法

    C++實現(xiàn)尋找最低公共父節(jié)點的方法

    這篇文章主要介紹了C++實現(xiàn)尋找最低公共父節(jié)點的方法,是數(shù)據(jù)結(jié)構(gòu)中二叉樹的一個經(jīng)典算法,有一定的借鑒價值,需要的朋友可以參考下
    2014-09-09
  • C語言實現(xiàn)餐廳管理系統(tǒng)

    C語言實現(xiàn)餐廳管理系統(tǒng)

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)餐廳管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • 使用C語言求二叉樹結(jié)點的最低公共祖先的方法

    使用C語言求二叉樹結(jié)點的最低公共祖先的方法

    這篇文章主要介紹了使用C語言求二叉樹結(jié)點的最低公共祖先的方法,文中還給出了ACM的練習題目,需要的朋友可以參考下
    2015-08-08
  • C++中的6種構(gòu)造函數(shù)舉例詳解

    C++中的6種構(gòu)造函數(shù)舉例詳解

    這篇文章主要介紹了C++中的6種構(gòu)造函數(shù)的相關(guān)資料,C++中構(gòu)造函數(shù)用于類對象初始化,類型包括默認構(gòu)造函數(shù)、參數(shù)化構(gòu)造函數(shù)、拷貝構(gòu)造函數(shù)等,默認構(gòu)造函數(shù)通常不需要參數(shù),編譯器會自動生成,除非存在其他構(gòu)造函數(shù),需要的朋友可以參考下
    2024-10-10
  • C++ ofstream與ifstream詳細用法

    C++ ofstream與ifstream詳細用法

    ofstream是從內(nèi)存到硬盤,ifstream是從硬盤到內(nèi)存,其實所謂的流緩沖就是內(nèi)存空間
    2013-07-07
  • C++模板類的用法實例

    C++模板類的用法實例

    這篇文章主要介紹了C++模板類的用法實例,以實例形式詳細講述了模板類的接口、成員、內(nèi)聯(lián)函數(shù)等概念及用法,需要的朋友可以參考下
    2014-10-10
  • 基于QT制作一個簡易的傳輸文件小工具

    基于QT制作一個簡易的傳輸文件小工具

    本文主要介紹了通過QT實現(xiàn)的一個文件傳輸小工具。功能就是能實現(xiàn)文件的雙向傳輸,即客戶端能傳給服務(wù)端,服務(wù)端可以傳給客戶端。文中示例代碼具有一定的學習價值,感興趣的小伙伴可以了解一下
    2021-12-12
  • C語言素數(shù)(質(zhì)數(shù))判斷的3種方法舉例

    C語言素數(shù)(質(zhì)數(shù))判斷的3種方法舉例

    這篇文章主要給大家介紹了關(guān)于C語言素數(shù)(質(zhì)數(shù))判斷的3種方法,質(zhì)數(shù)是只能被1或者自身整除的自然數(shù)(不包括1),稱為質(zhì)數(shù),文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2023-11-11

最新評論

绿春县| 明光市| 沂水县| 定结县| 长岭县| 砚山县| 成安县| 上杭县| 隆安县| 桃江县| 稻城县| 定边县| 皋兰县| 平果县| 漳州市| 绍兴市| 波密县| 常州市| 济源市| 清原| 义马市| 太湖县| 海南省| 永康市| 二手房| 广安市| 甘洛县| 枣强县| 梅州市| 临江市| 陆丰市| 赤峰市| 中江县| 屏边| 女性| 社会| 临洮县| 全州县| 同仁县| 博野县| 福鼎市|