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

长春网站制作优势吉网传媒百度还原

长春网站制作优势吉网传媒,百度还原,用discuz做的网站,b2b平台入驻条件首先是创建一个widget项目 然后需要添加qml和quick的插件使用 QT quickwidgets qml 接着要在界面上创建一个quickwidget和按钮 创建一个c对象类 QObjectQml #ifndef QOBJECTQML_H #define QOBJECTQML_H#include <QObject> #include <QDebug> class QObjectQml …

首先是创建一个widget项目
在这里插入图片描述
然后需要添加qml和quick的插件使用
QT += quickwidgets qml
接着要在界面上创建一个quickwidget和按钮
在这里插入图片描述
创建一个c++对象类
QObjectQml

#ifndef QOBJECTQML_H
#define QOBJECTQML_H#include <QObject>
#include <QDebug>
class QObjectQml : public QObject
{Q_OBJECTQ_PROPERTY(QString deviceId READ getDeviceId WRITE setDeviceId)//这里进行属性绑定
public:explicit QObjectQml(QObject *parent = nullptr);//内部函数QString getDeviceId() {return deviceId;}void setDeviceId(QString id);
signals:public slots:void funDemo(QString str);private:QString deviceId;
};#endif // QOBJECTQML_H

cpp实现文件

#pragma execution_character_set("utf-8")
#include "qobjectqml.h"QObjectQml::QObjectQml(QObject *parent) : QObject(parent)
{}void QObjectQml::setDeviceId(QString id)
{deviceId = id;qDebug()<<"setDeviceId 数据库发生改变";
}void QObjectQml::funDemo(QString str)
{qDebug()<<"我是c++函数被调用funDemo"<<str;
}

注册c++对象到系统中

#pragma execution_character_set("utf-8")
#include "mainwidget.h"
#include <QApplication>
#include "qobjectqml.h"
#include <QQmlApplicationEngine>
#include <QMetaObject>
#include <QVariant>int main(int argc, char *argv[])
{QApplication a(argc, argv);//将c++类以类型的方式注册到qml中qmlRegisterType<QObjectQml>("QObjectQml.module",1,0,"QObjectQml");MainWidget w;w.show();return a.exec();
}

接着c++的界面对象中调用即可

#include "mainwidget.h"
#include "ui_mainwidget.h"
#include <QQmlEngine>#include "qobjectqml.h"
#include <QQmlApplicationEngine>
#include <QMetaObject>
#include <QVariant>MainWidget::MainWidget(QWidget *parent) :QWidget(parent),ui(new Ui::MainWidget)
{ui->setupUi(this);//界面上的quickWidget添加qmlui->quickWidget->setSource(QUrl::fromLocalFile(":/mainqml.qml"));}MainWidget::~MainWidget()
{delete ui;
}
//SF1446179868590
void MainWidget::on_pushButton_clicked()
{QVariant retVal;QMetaObject::invokeMethod((QObject*)ui->quickWidget->rootObject(), /* Qml实例 */"execute",         /* 函数名字 */Qt::DirectConnection, /* 连接方式 */Q_RETURN_ARG(QVariant, retVal), /* 标记返回值 */Q_ARG(QVariant, "Hello"), /* 输入参数1 */Q_ARG(QVariant, "world"));/* 输入参数2 */
}

qml文件的实现如下:

import QtQuick 2.0
import QObjectQml.module 1.0Rectangle {width: 360height: 360signal finished()Component.onCompleted: {console.log("Hello,Hello")}//cc++的对象创建,并赋值deviceIdQObjectQml {id: myObject/* 设置text属性 */deviceId: "12345"/* 读取打印text属性 */Component.onCompleted: console.log(text)}function execute(var1, var2) {console.log("我是qml函数被调用")//c++console.log(var1, var2)//c++调用了qml的此函数。输出结果console.log(myObject.deviceId)//并且输出QObjectQml对象的值return true;}Rectangle {id: buttonwidth: 100height: 30color: "red"radius: 5     // 让我们将矩形的角变圆一点,使其更像一个按钮anchors.centerIn: parentText {id: buttonTexttext: qsTr("Button")color: "white"anchors.centerIn: parent}MouseArea {//我们将MouseArea设为与其父级(即矩形)一样大。因此,按下按钮上的任意位置都会触发事件anchors.fill: parent// Exploit the built-in "clicked" signal of the MouseArea component to do something when the MouseArea is clicked.//请注意,与信号关联的代码是纯JavaScript。我们可以使用其ID引用任何QML对象onClicked: {buttonText.text= qsTr("Clicked");buttonText.color= "black";myObject.deviceId = "ok不ok";myObject.funDemo("我靠");//qml点击事件中去调用c++的函数}}}
}

运行结果如下:
在这里插入图片描述

http://www.dinnco.com/news/53541.html

相关文章:

  • 用美国服务器做钓鱼网站下载百度手机助手
  • 有做任务赚赏金的网站吗seo关键词优化服务
  • 平潭城乡住房建设厅网站适合发表个人文章的平台
  • 免费1级做爰片在线观看 历史网站百度seo培训要多少钱
  • 做网站如何引用头部资源搜索神器
  • 摄影网站采用照片做宣传 版权费是多少广州网站优化
  • 如何做招聘网站分析广州seo外包多少钱
  • 做网站的叫什么软件黑马it培训班出来现状
  • 福田公司seo外包公司
  • 美国人在床上做裸身体网站啊长沙百度网站推广公司
  • 网站统计代码放哪里梅花seo 快速排名软件
  • 做平面设计兼职的网站博客网站登录
  • 本溪北京网站建设内部搜索引擎优化
  • 湖北建设厅网站查询长春网站建设方案托管
  • wordpress默认密码徐州网页关键词优化
  • 网络营销策划的定义站长工具seo诊断
  • 南京做网站哪家公司好爱战网官网
  • 青岛网站建设莫道网络成都高新seo
  • 多种成都网站建设阳山网站seo
  • 河南郑州建设网站seo关键词排名优化软件怎么选
  • 如何搭建钓鱼网站网络推广靠谱吗
  • 佛山网站建设怎样做长沙营销推广
  • 网站怎么做能快速有排名电商具体是做什么的
  • 做外贸soho网站的公司吗培训机构管理系统哪个好
  • 河北网站建设及推广免费搭建网站平台
  • 企业网站系统有哪些如何推广一款app
  • 如何用外网ip做网站网络推广方法有哪些
  • 做一元购网站seo 关键词优化
  • 政协网站建设怎么注册个人网站
  • 店铺外卖网站怎么做google play官网下载