qml與C++互動傳值的簡單demo
qml 與C++的後臺互動,參照foruok大神的寫法自己研究,改動了一下,有不足 的地方還望路過的大神指出,
我用的是Qt5.7.1,做了個簡單的demo,下面是我的程式碼原始碼
具體的操作過程如下:
新建選擇Application專案 中的Qt Quick Controls 2 Application ,選擇下一步,命名為QmlTest後面一直點下一步就行了。
選擇專案右鍵選擇新增新檔案,C++ C++ Class 下一步,命名為QmlTest,baseClass選擇QObject點選下一步就OK了。
main.cpp的原始碼
#include <QGuiApplication>
#include <QQmlApplicationEngine>
#include <QtQml>
#include "qmltest.h"
int main(int argc, char *argv[])
{
QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
QGuiApplication app(argc, argv);
qmlRegisterType<QmlTest>("an.Qt.QmlTest",1,0,"QmlTest");
QQmlApplicationEngine engine;
engine.load(QUrl(QLatin1String("qrc:/main.qml")));
return app.exec();
}
注意上面的 qmlRegisterType<QmlTest>("an.Qt.QmlTest",1,0,"QmlTest");的位置不能放錯否則會沒有作用。
qmltest.h的原始碼
#ifndef QMLTEST_H
#define QMLTEST_H
#include <QObject>
class QmlTest : public QObject
{
Q_OBJECT
public:
explicit QmlTest(QObject *parent = 0);
~QmlTest();
signals:
void currentDemo(const QString &strDemo);
public slots:
void send();
};
#endif // QMLTEST_H
qmltest.cpp的原始碼
#include "qmltest.h"
QmlTest::QmlTest(QObject *parent)
{
}
QmlTest::~QmlTest()
{
}
void QmlTest::send()
{
emit currentDemo(("demo"));
}
main.qml的原始碼
import QtQuick 2.7
import QtQuick.Controls 2.0
import QtQuick.Layouts 1.0
import an.Qt.QmlTest 1.0
ApplicationWindow {
visible: true
width: 640
height: 480
title: qsTr("Hello World")
Text {
id: demoLabel;
anchors.left: parent.left;
anchors.leftMargin: 4;
anchors.top: parent.top;
anchors.topMargin: 4;
font.pixelSize: 26;
}
QmlTest {
id: demoMaker;
}
Button{
id:send;
text: "send";
anchors.left: parent.left;
anchors.leftMargin: 4;
anchors.bottom: parent.bottom;
anchors.bottomMargin: 4;
onClicked: {
demoMaker.send();
}
}
Connections {
target: demoMaker;
onCurrentDemo:{
demoLabel.text = strDemo;
}
}
}
相關推薦
qml與C++互動傳值的簡單demo
qml 與C++的後臺互動,參照foruok大神的寫法自己研究,改動了一下,有不足 的地方還望路過的大神指出, 我用的是Qt5.7.1,做了個簡單的demo,下面是我的程式碼原始碼 具體的操作過程如下: 新建選擇Application專案 中的Qt Quick Contro
QML與C++互動 登陸介面設計
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
Webview與原生互動傳值
UIWebView *webView = [[UIWebView alloc]initWithFrame:CGRectMake(0,0, MainScreenWidth,MainScreenH
QML與c++互動的一些坑
這個是轉載的,【lvliang2008】, #include <QtGui/QApplication> #include <QtDeclarative/QDeclarativeView> #inc
c++中的訊號與QML中的函式繫結(連結)起來 以及qml與c++互動重要筆記
signals: Q_INVOKABLE void buttonLeft(); Q_INVOKABLE void buttonRight(); Q_INVOKABLE void buttonShort(); Q_INVOKABLE void butto
QtQuick系列教程(6)-Qml與C++互動
總目錄傳送 本博文技術等級: ★★☆☆☆☆☆☆☆☆ QML 作為一種靈活高效的介面開發語言已經越來越得到業界的認可。QML 負責介面,C++ 負責邏輯,這也是 Qt 官方推薦的開發方式。那麼 QML 與 C++ 的互動必然是需要我們掌握並且精通的。 本 C
ios js與oc原生WKWebView方法注入及互動傳值
上篇文章中,我們整理了關於WKWebView的詳細使用,包含進度條、獲取web title等等內容,這篇文章我們整理下,專案中,我們可能使用到的oc 與 js 原生互動場景下的使用.如有興趣,
qml與c++之間的互動
學習qml的筆記,Qt Quick核心程式設計的一個例子:1、實現一個類(從object以及派生類中繼承而來),使用Q_OBJECT巨集。 #ifndef COLORMAKER_H #define COLORMAKER_H #include <QObject>
c# 委託類傳值簡單例項
WebForm1 向Class1傳遞引數值: //////////////////////////////////////////////////////////////////////////////////////////////////////////////////
qml與c++物件互動
c++修改、訪問qml屬性、呼叫qml方法(引數傳遞)、qml訊號繫結到c++物件的槽上,傳遞各種型別的引數: main.cpp 設定qml屬性、訪問qml屬性、呼叫qml函式、關聯qml訊號與c++物件的槽函式 #include <QGui
c++11 移動拷貝、移動賦值簡單Demo
#include <iostream> using namespace std; class A { public: A() : p_(new int(3)){ cout << "constructor numbers = :
C語言---傳值與傳地址
<1>傳值:實參把值傳給了形參,但沒有傳地址即對實參的修改無效。 核心原理:函式會對形參和中間的臨時變數(函式內定義的變數)重新分配空間。 <2>傳地址:實參把自己的記憶體地址傳給了形參,這樣對實參的修改就有效了。 大多數型別都是傳值, 傳地址有以下3種方式: (1)、全域性變數(把
【C#】winform子窗體與父窗體傳值,子窗體與子窗體傳值
【1】子窗體與父窗體傳值 【2】子窗體與子窗體傳值: 前提:Form1座位父窗體,然後它new出來了兩個個子窗體分別為Form2與Form3; 要求:可以及時把Form2中產生的資料,傳遞給Form
Qt Quick 之 QML 與 C++ 混合編程具體解釋
ack world 避免 pub start 模板方法 另一個 一秒 gis Qt Quick 技術的引入。使得你能夠高速構建 UI ,具有動畫、各種絢麗效果的 UI 都不在話下。但它不是萬能的。也有非常多局限性,原來 Qt 的一些技術,比方低階的網絡編程如 Q
iOS Block界面反向傳值小demo
一個 push action put btn inter text nac mic 1、在第二個視圖控制器的.h文件中定義聲明Block屬性: // 定義block @property (nonatomic, copy) void (^NextViewControlle
Android自定義view與activity的傳值
重復 轉動 自定義 activit 廣播 內部 代碼 view 等待 昨晚在寫團隊項目的時候,遇到一個問題,直到今天早上才解決。。。即在自定義view“轉盤”結束轉動後獲取結果的處理中,我是想吧值傳到activity中的一個textview中的,但我的自定義view類不是a
Unity與C++互動入門
Unity多執行緒和Job System Job System作業只能訪問blittable資料型別。當在託管程式碼和原生代碼之間傳遞資料時,該型別資料不需要轉換。 關於blittable資料型別在連結二里有介紹。 Unity與C++互動入門(1) https://www.jianshu.com/p/6
ES6的 結構賦值----簡單demo
<script type="text/javascript"> // 解構賦值 { let [a,b,c] = [1,2,3]; console.log(a,b,c); //1 2 3 } //巢狀
C#訊息傳值
為了做一個東西,研究了下c#獲取其他控制代碼後進行傳值(才發現幾乎是什麼都不懂就開始做了),屬於windows訊息機制,發現了一些問題,整理如下 一個視窗擁有多個子控制元件,控制代碼不同,所能獲取的訊息和處理也不同,以記事本為例:標題欄控制代碼可接收最大化最小化等訊息,而text控制元件可接收按
struts2動態方法呼叫與j2ee互動傳參
動態方法呼叫: (action程式碼) package com.zking.web; import org.apache.struts2.ServletActionContext; import com.opensymphony.xwork2.ModelDriven; import