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

做的好看的统一登录网站旅游网站建设与实现

做的好看的统一登录网站,旅游网站建设与实现,手机软件app制作的三种方式,网站建设规范方案qml端使用C对象类型、qml端调用C函数/c端调用qml端函数、qml端发信号-连接C端槽函数、C端发信号-连接qml端函数等。 代码资源下载#xff1a; https://download.csdn.net/download/TianYanRen111/88779433 若无法下载#xff0c;直接拷贝以下代码测试即可。 main.cpp #incl…qml端使用C对象类型、qml端调用C函数/c端调用qml端函数、qml端发信号-连接C端槽函数、C端发信号-连接qml端函数等。 代码资源下载 https://download.csdn.net/download/TianYanRen111/88779433 若无法下载直接拷贝以下代码测试即可。 main.cpp #include QGuiApplication #include QQmlApplicationEngine #include QQmlContext #include MyObject.h #include TestObject.hint main(int argc, char *argv[]) {QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);QGuiApplication app(argc, argv);QQmlApplicationEngine engine;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);qmlRegisterTypeMyObject(com.mycompany.qmlcomponents, 1, 0, MyObject);qmlRegisterTypeTestObject(com.mycompany.qmlcomponents, 1, 0, TestObject);engine.load(url);//auto objs engine.rootObjects();auto window objs.first();// c 绑定信号槽C端发信号// 此种形式必须将信号设置为 QVariant类型MyObject obj;QObject::connect(obj, SIGNAL(sendCpp2(QVariant, QVariant)), window, SLOT(slotCpp(QVariant, QVariant)));obj.test2(); // 发送信号// c端调用qml端函数qDebug()objs.first()-objectName();QVariant ret;QVariant arg1 123333;QVariant arg2 zhangsan;QMetaObject::invokeMethod(window, qmlFunc, Q_RETURN_ARG(QVariant, ret),Q_ARG(QVariant, arg1),Q_ARG(QVariant, arg2));return app.exec(); } MyObject.h #ifndef MYOBJECT_H #define MYOBJECT_H#include QObject #include QDebugclass MyObject : public QObject {Q_OBJECTQ_PROPERTY(int num READ num WRITE setNum NOTIFY numChanged)Q_PROPERTY(QString name READ name WRITE setName NOTIFY nameChanged)public:explicit MyObject(QObject *parent nullptr); int num() const;QString name() const;Q_INVOKABLE void printMessage();Q_INVOKABLE void test1() {emit sendCpp1(--------------111111-------);}void test2() {emit sendCpp2(---------2222222222------------series, 222222222222);}public slots:void setNum(int num);void setName(QString name);void onMsg(QString msg, int value);signals:void numChanged(int num);void nameChanged(QString name);void sendCpp1(QString message);void sendCpp2(QVariant message, QVariant value);private:int m_num;QString m_name; };#endif // MYOBJECT_H MyObject.cpp #include MyObject.hMyObject::MyObject(QObject *parent) : QObject(parent) {}int MyObject::num() const {return m_num; }QString MyObject::name() const {return m_name; }void MyObject::printMessage() {qDebug() message is: 11111111111; }void MyObject::setNum(int num) {if (m_num num)return;m_num num;emit numChanged(m_num); }void MyObject::setName(QString name) {if (m_name name)return;m_name name;emit nameChanged(m_name); }void MyObject::onMsg(QString msg, int value) {qDebug() ################ msg:value is: msg value; } TestObject.h #ifndef TESTOBJECT_H #define TESTOBJECT_H#include QObjectclass TestObject : public QObject {Q_OBJECTQ_PROPERTY(QString message READ message WRITE setMessage NOTIFY messageChanged)public:explicit TestObject(QObject *parent nullptr);QString message() const {return m_message;}public slots:void setMessage(QString message) {{if (m_message message)return;m_message message;emit messageChanged(m_message);}}signals:void messageChanged(QString message);private:QString m_messsage;QString m_message; };#endif // TESTOBJECT_H 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 import com.mycompany.qmlcomponents 1.0Window {id: windowobjectName: myWindowvisible: truewidth: 600height: 250title: qsTr(Hello World)signal sendMsg(string msg, int value)function slotCpp(message, value) {console.log(... message value)}function qmlFunc(msg, value) {console.log(......qml function... msg:value: , msg, value)}MyObject {id: myObjectnum: 101name: zhangSanonNumChanged: {console.log(...new num is: , num)}onNameChanged: {console.log(...new name is: , name)}Component.onCompleted: {console.log(...init num and name is: num name)}}TestObject {id: testObjectmessage: HelloWorld...onMessageChanged: {console.log(...new message is: , message)}Component.onCompleted: {console.log(...init message is: message)}}Column {spacing: 10Button {text: qml中测试c对象类型onClicked: {myObject.num 102myObject.name wangtestObject.message HelloWorld, I love you...}}Button {text: qml端调用C端函数onClicked: {myObject.printMessage()}}Button {text: qml端发送信号, 连接C端槽函数onClicked: {sendMsg(...qml signal, 66666666)}}Button {text: C端发送信号, 连接qml端槽函数onClicked: {myObject.test1()}}}// qml信号连接C槽函数方式一// Connections {// target: window// onSendMsg: {// myObject.onMsg(...qml signal, 8888888)// }// }//qml信号连接C槽函数方式二Component.onCompleted: {window.sendMsg.connect(myObject.onMsg)}Connections {target: myObjectonSendCpp1: {console.log(...... message)}} } 参考文章 https://blog.csdn.net/wzz953200463/article/details/129504685
http://www.hkea.cn/news/14295527/

相关文章:

  • 网站做视频在线观看怎么申请域名注册商
  • 汉中北京网站建设最专业的网站建设推广
  • 广西城乡建设部网站首页wordpress在线编辑器插件
  • 广州五羊建设官方网站网站开发发展方向
  • 苏州公司网站大数据智能营销
  • wordpress nginx rewriteseo基础教程视频
  • 网站建设信息科技公司个人做网站的必要性
  • 自己做装修网站网站的功能需求
  • 环保主题静态网站大连哪家公司做网站
  • 东莞站福公司工资wordpress前面增加new
  • 网站建设论文3000网站由哪些部分组成
  • 想建个图片网站学科专业网站建设
  • 武胜网站建设公司网站建设方案详细方案模板
  • 上海建站价格网络销售是做什么的
  • 大庆 网站建设深圳市官方网站开发公司
  • 网站为什么要做seowordpress修改域名登录后台
  • 做国外销售都上什么网站百度云 wordpress 教程视频
  • 电商网站建设阿里云深圳福田区天气
  • 企业门户网站管理办法网站正在建设中是什么意思
  • 网上购物网站开发开题报告网络推广费用大概价格
  • 如何制作网站?怎么做8代码网站
  • 项城做网站wordpress博客模板下载
  • 文化馆建设网站邯郸网站制作与建设
  • 郑州郑州网站建设河南做网站公司制作网站服务
  • 以前老网站如何做一间公司的网站
  • 九江县网站建设WordPress网站关闭插件
  • 优秀网站制作定制北京企业官网建设
  • 做logo的著名网站网站公司网站开发
  • 青岛网页制作网站坪山网站建设资讯
  • 精选微信网站建设wordpress创建知识库