当前位置: 首页 > news >正文

深圳模板网站建设案例那个网站可以免费做风面

深圳模板网站建设案例,那个网站可以免费做风面,铜陵专业网站制作公司,网站搭建流程负责人目录 1 QML获取C的变量值 2 QML获取C创建的自定义对象 3 QML发送信号绑定C端的槽 4 C端发送信号绑定qml端槽 5 C调用QML端函数 1 QML获取C的变量值 QQmlApplicationEngine engine; 全局对象 上下文属性 QQmlApplicationEngine engine; QQmlContext *context1 engine.…目录 1 QML获取C的变量值 2 QML获取C创建的自定义对象 3 QML发送信号绑定C端的槽 4 C端发送信号绑定qml端槽 5 C调用QML端函数 1 QML获取C的变量值 QQmlApplicationEngine engine; 全局对象 上下文属性 QQmlApplicationEngine engine; QQmlContext *context1 engine.rootContext(); context1-setContextProperty(test,200); 在qml中可全局直接使用test  2 QML获取C创建的自定义对象 光标放在成员变量m_iValue和m_sString后面 Alt Enter 选择第一个可自动生成函数 int m_iValue; QString m_sString; myobject.h #ifndef MYOBJECT_H #define MYOBJECT_H#include QObjectclass MyObject : public QObject {Q_OBJECT public:explicit MyObject(QObject *parent nullptr);int iValue() const;void setIValue(int newIValue);const QString sString() const;void setSString(const QString newSString);signals:void iValueChanged();void sStringChanged();private:int m_iValue;QString m_sString;Q_PROPERTY(int iValue READ iValue WRITE setIValue NOTIFY iValueChanged)Q_PROPERTY(QString sString READ sString WRITE setSString NOTIFY sStringChanged) };#endif // MYOBJECT_Hmyobject.c #include myobject.hMyObject::MyObject(QObject *parent): QObject{parent} {}int MyObject::iValue() const {return m_iValue; }void MyObject::setIValue(int newIValue) {if (m_iValue newIValue)return;m_iValue newIValue;emit iValueChanged(); }const QString MyObject::sString() const {return m_sString; }void MyObject::setSString(const QString newSString) {if (m_sString newSString)return;m_sString newSString;emit sStringChanged(); }mian.c 注册main.qml 中 import testObj 1.0使用 qmlRegisterTypeMyObject(testObj,1,0,MyObject); main.qml import QtQuick 2.15 import QtQuick.Window 2.15 import QtQuick.Controls 2.5 import testObj 1.0 Window {width: 640height: 480visible: truetitle: qsTr(Hello World)MyObject {iValue: 20sString: test}} 使用c端的函数时需要在函数前面加上 Q_INVOKABLE 比如 Q_INVOKABLE void myFunction(); 3 QML发送信号绑定C端的槽 在mian.c先注册 qmlRegisterTypeMyObject(testObj,1,0,MyObject); C 写一个公有槽  public slots:     void qml_slot(QString str); qml端通过按钮发送信号 signal qml_signal(string str)     Button {         onClicked: {             qml_signal(qml send signal test);         }     } 绑定信号和槽函数 Component.onCompleted: {         qml_signal.connect(myobj.qml_slot)     } import QtQuick 2.15 import QtQuick.Window 2.15 import QtQuick.Controls 2.5 import testObj 1.0 Window {id: windowwidth: 640height: 480visible: truetitle: qsTr(Hello World)MyObject {id: myobjiValue: 20sString: test}signal qml_signal(string str)Button {onClicked: {qml_signal(qml send signal test);}}//方法一 // Connections { // target: window // function onQml_signal(str){ // myobj.qml_slot(str) // } // }//方法二Component.onCompleted: {qml_signal.connect(myobj.qml_slot)}//方法三 mian.c 中engine load后//auto obj_list engine.rootObjects();//auto window list.first();//connect(window,SIGNAL(qml_signal(QString)),your function ptr,SLOT(qml_slot(QString)));} 4 C端发送信号绑定qml端槽 myobject.h 信号 void signal_Cpp(QString str); 通过函数 Q_INVOKABLE void myFunction();发送 #ifndef MYOBJECT_H #define MYOBJECT_H#include QObjectclass MyObject : public QObject {Q_OBJECT public:explicit MyObject(QObject *parent nullptr);int iValue() const;void setIValue(int newIValue);const QString sString() const;void setSString(const QString newSString);Q_INVOKABLE void myFunction();static MyObject* getInstance(); public slots:void qml_slot(QString str); signals:void iValueChanged();void sStringChanged();void signal_Cpp(QString str); private:int m_iValue;QString m_sString;Q_PROPERTY(int iValue READ iValue WRITE setIValue NOTIFY iValueChanged)Q_PROPERTY(QString sString READ sString WRITE setSString NOTIFY sStringChanged) };#endif // MYOBJECT_Hmyobject.c #include myobject.h #include QDebug MyObject::MyObject(QObject *parent): QObject{parent} {}int MyObject::iValue() const {return m_iValue; }void MyObject::setIValue(int newIValue) {if (m_iValue newIValue)return;m_iValue newIValue;emit iValueChanged(); }const QString MyObject::sString() const {return m_sString; }void MyObject::setSString(const QString newSString) {if (m_sString newSString)return;m_sString newSString;emit sStringChanged(); }void MyObject::myFunction() {emit signal_Cpp(signal_Cpp myFunction!); }MyObject *MyObject::getInstance() {static MyObject* obj new MyObject();return obj; }void MyObject::qml_slot(QString str) {qDebug()qml_slotstr; }mian.c 注册单例类 qmlRegisterSingletonInstance(testObj,1,0,MyObject,MyObject::getInstance()); #include QGuiApplication #include QQmlApplicationEngine #include QQmlContext #include QtQml/qqml.h #include myobject.hint main(int argc, char *argv[]) { #if QT_VERSION QT_VERSION_CHECK(6, 0, 0)QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling); #endifQGuiApplication app(argc, argv);QQmlApplicationEngine engine;QQmlContext *context1 engine.rootContext();context1-setContextProperty(test,200);//qmlRegisterTypeMyObject(testObj,1,0,MyObject);qmlRegisterSingletonInstance(testObj,1,0,MyObject,MyObject::getInstance());const QUrl url(QStringLiteral(qrc:/main.qml));QObject::connect(engine, QQmlApplicationEngine::objectCreated,app, [url](QObject *obj, const QUrl objUrl) {if (!obj url objUrl)QCoreApplication::exit(-1);}, Qt::QueuedConnection);engine.load(url);return app.exec(); }main.qml C端发送信号 Button {         onClicked: {             //C发送信号             MyObject.myFunction()         }     } 连接QML端槽函数 Connections {         target: MyObject         function onSignal_Cpp(str) {             //qml槽函数             qmlSolt(str)         }     } import QtQuick 2.15 import QtQuick.Window 2.15 import QtQuick.Controls 2.5 import testObj 1.0 Window {id: windowwidth: 640height: 480visible: truetitle: qsTr(Hello World)// MyObject { // id: myobj // iValue: 20 // sString: test// }function qmlSolt(str) {console.log(str)}signal qml_signal(string str)Button {onClicked: {//C发送信号MyObject.myFunction()}}Connections {target: MyObjectfunction onSignal_Cpp(str) {//qml槽函数qmlSolt(str)}}}5 C调用QML端函数 //main.c  load后获取qml对象     auto obj_list engine.rootObjects();     auto window obj_list.first(); //调用QML函数     QMetaObject::invokeMethod(window,qmlFunction,                               Q_RETURN_ARG(QVariant,res),                               Q_ARG(QVariant,arg1),                               Q_ARG(QVariant,arg2)                               ); mian.qml import QtQuick 2.15 import QtQuick.Window 2.15 import QtQuick.Controls 2.5 import testObj 1.0 Window {id: windowwidth: 640height: 480visible: truetitle: qsTr(Hello World)function qmlFunction(arg1,arg2) {return arg1 arg2;}} mian.c #include QGuiApplication #include QQmlApplicationEngine #include QQmlContext #include QtQml/qqml.h #include myobject.hint main(int argc, char *argv[]) { #if QT_VERSION QT_VERSION_CHECK(6, 0, 0)QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling); #endifQGuiApplication app(argc, argv);QQmlApplicationEngine engine;QQmlContext *context1 engine.rootContext();context1-setContextProperty(test,200);qmlRegisterTypeMyObject(testObj,1,0,MyObject);//qmlRegisterSingletonInstance(testObj,1,0,MyObject,MyObject::getInstance());const QUrl url(QStringLiteral(qrc:/main.qml));QObject::connect(engine, QQmlApplicationEngine::objectCreated,app, [url](QObject *obj, const QUrl objUrl) {if (!obj url objUrl)QCoreApplication::exit(-1);}, Qt::QueuedConnection);engine.load(url);//获取qml对象auto obj_list engine.rootObjects();auto window obj_list.first();QVariant res;QVariant arg1 arg1;QVariant arg2 arg2;//调用QML函数QMetaObject::invokeMethod(window,qmlFunction,Q_RETURN_ARG(QVariant,res),Q_ARG(QVariant,arg1),Q_ARG(QVariant,arg2));qDebug()res;return app.exec(); }
http://www.w-s-a.com/news/386675/

相关文章:

  • dede网站 地图什么做有没有做黑市网站
  • 做网站参考文献域名如何做网站
  • 怎么选择网站开发英文网站建设用途
  • 怎样做电子商务网站织梦生成手机网站
  • 公司网站建设选什么服务器网站里怎样添加关键词
  • 深圳建设局网站深业中城绿化项目营销型网站开发流程包括
  • 找销售的网站九江市建设项目服务中心
  • 东原ARC网站建设公司合肥seo网站推广外包
  • 那个网站是做房产中介的网站制作软件小学
  • 做网页怎么建站点视频解析网站
  • 做网站的系统设计网站设计论文前言
  • 做外贸网站多久更新汕头市建设局网站首页
  • 如何建设专业化的网站手机管理网站模板
  • 花生壳做网站如何用腾讯云做网站
  • 搭建集团网站开发app需要哪些软件
  • 网站建设 中企动力福州阀门wordpress 多说评论
  • php网站集成支付宝接口下载免费网络软件
  • 卡盟网站是怎么建设的用花生壳做网站速度可以吗
  • 杭州物联网前十名公司优秀seo平台
  • 网新中英企业网站管理系统wordpress 登录 缓存
  • wordpress模板建站教程wordpress添加广告位手机自适应
  • h5游戏平台入口优化是什么梗
  • 建设银行对公网站打不开网络推广活动方案主题和思路
  • 茶叶网站开发目的和意义网页设计需要考什么证
  • 高端企业网站建设公司怎么做实用性建设网站都需要哪些
  • 网站备案必须要幕布吗易企秀网站怎么做轮播图
  • 南昌网站排名优化四线城市网站建设方向及营利点
  • 做网站需要钱吗unity 做网站
  • 呼伦贝尔市规划建设局网站wordpress怎么考别人的
  • 免备案自助建站网站成都神速建站