博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
QML与c++交互学习笔记(八) qt c++直接调用QML中的函数, 直接设置属性
阅读量:7114 次
发布时间:2019-06-28

本文共 1915 字,大约阅读时间需要 6 分钟。

1.这里主要是介绍,如何在c++中调用QML中的函数和设置QML中的属性的问题


 

2.具体代码


 


 

// UICtest.qml import Qt 4.7 Rectangle {     id: mainWidget;     width: 640     height: 480     function callbyc(v)     {         mainWidget.color = v;         return "finish";     }     Rectangle{         id: secondRect;         x: 100;         y: 20;         width: 400;         height: 300;         Rectangle{             x: 10;             y: 20;             width: 30;             height: 40;             color: "#FF035721"             Text  {                 objectName: "NeedFindObj";                 anchors.fill: parent;                 text: "";             }         }     } }


 

// main.cpp #include 
#include
#include
#include
#include
#include
#include
int main(int argc, char *argv[]) { QApplication a(argc, argv); QDeclarativeView qmlView; qmlView.setSource(QUrl::fromLocalFile("../UICtest/UICtest.qml")); qmlView.show(); // 获取根节点,就是 QML中 id是mainWidget的节点 QDeclarativeItem *item = qobject_cast
(qmlView.rootObject()); item->setProperty("color", QVariant("blue")); // 查找到我们需要的节点根均objectname NeedFindObj 来获得,并设置他的文本属性 QDeclarativeItem *item1 = item->findChild
("NeedFindObj"); if (item1) { item1->setProperty("text", QVariant("OK")); } // 调用QML中的函数, 分别是 函数所在的对象, 函数名,返回值, 参数 QVariant returnVar; QVariant arg1 = "blue"; QMetaObject::invokeMethod(item, "callbyc", Q_RETURN_ARG(QVariant, returnVar),Q_ARG(QVariant, arg1)); qDebug(" %s",returnVar.toString().toLocal8Bit().data()); return a.exec(); }


 


 


 


 

说明:

这里的根节点是id为mainWidget的矩形元素,那么在C++中获取根节点后就可以,直接的设置他的属性了。其他属性也可以同样,调用指定节点内的函数是通过QMetaObject中的invokeMethod 来进行调用的。


 

最后所有关于QML和c++交互部分就基本写完,如果想要更多的东西,或者一些其他方法,强烈看看

http://doc.qt.nokia.com/4.7-snapshot/qtbinding.html,或者帮助文档,(究竟是不是我的文档里面没有还是怎么的)

转载地址:http://fqghl.baihongyu.com/

你可能感兴趣的文章
nginx 学习笔记(5) nginx调试日志
查看>>
php 数据类型转换
查看>>
Class热替换与卸载
查看>>
关于MySQL卸载重新安装的问题 windows
查看>>
Java NIO框架Netty教程(二) 白话概念(转)
查看>>
编译php时出现的错误
查看>>
业界黄金搅屎棍:Google
查看>>
淘宝开放平台技术历程----学习转载
查看>>
linux中gcc库文件的相关问题
查看>>
MFC C++类型学习
查看>>
使用简介
查看>>
顺序表实现连续删除从位置i开始的n个元素(C++实现)
查看>>
阿里内贸团队敏捷实践
查看>>
Kurento Media Server 高级安装指南
查看>>
UIGraphicsBeginImageContext
查看>>
Darker正在连接...
查看>>
Linux命令:sftp
查看>>
bootstrap引入的css和js
查看>>
线段的内部查找
查看>>
html中加载外部文件时的绝对地址&相对地址
查看>>