C 物件與QML屬性

2021-08-07 14:43:10 字數 1291 閱讀 5095

//qquickview

qquickview viewer;

viewer.rootcontext()-> setcontextproperty("colormaker",new colormaker);

viewer.sersource(qurl("qrc:/"));

從堆上分配了乙個colormaker物件,然後註冊為qml上下文是屬性,名字為colormaker。

viewer.rootcontext()返回的是qqmlcontext物件。qqmlcontext類代表乙個qml上下文,它的setcontextproperty()方法可以為該上下文設定乙個全域性可見的屬性。

engine.rootcontext()-> setcontextproperty("colormaker",new colormaker);

engine.load(qurl(qstringliteral("qrc:/")))

在乙個qml檔案中:

window

button

}

在cpp檔案中可以這樣使用:

qlistrootobjects=engine.rootobjects();

qdebug()//遍歷rootoject的子物件

int count=rootobjects.size();

for(int i=0;iif

(rootobjects.at(i)->objectname()=="rootobject")

}new

changeqmlcolor

(root);

qobject *quitbutton=root->findchild("quitbutton");

qobject *textlabel=root->findchild("textlabel");

bool bret=qmetaobject::invokemethod(textlabel,"settext",q_arg(qstring,"world hello"));

qdebug()<<

"call settext return "

<

textlabel->setproperty("color"qcolor::fromrgb(255,0,0));

bret=qmeatobject::invokemethod(textlabel,"dolayout");

qdebug()<<

"call dolayout return "

<

qml中嵌入c 物件

main.cpp 設定qml屬性和視窗屬性 include include include include int main int argc,char argv include include include class qobject 可以使用q invokable的public函式或者publ...

QML基礎 QML屬性繫結(Binding

用了n年的qwidget,因為專案需求而開始學習qml做一些動態的介面,下面開始記錄學習qml的新路歷程。注 學習有誤的望指點一二,不喜勿噴!屬性繫結就是建立目標物件對其他物件的依賴關係,當其他物件值發生改變時,目標物件也會改變,自動更新屬性,達到動態屬性的效果。textedit當text發生改變時...

QML基礎 QML物件型別介紹

用了n年的qwidget,因為專案需求而開始學習qml做一些動態的介面,下面開始記錄學習qml的新路歷程。注 學習有誤的望指點一二,不喜勿噴!用語法術語來說,qml物件型別是一種可以用來宣告物件的方法,方法是指定型別每次,後跟一組包含該物件屬性的花括號。這與基本型別不同,基本型別不能以該方式使用。例...