欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

目錄

柚子快報(bào)激活碼778899分享:QT:QML與C++交互

柚子快報(bào)激活碼778899分享:QT:QML與C++交互

http://yzkb.51969.com/

目錄

一.介紹

二.pro文件添加模塊

三.h文件

四.cpp文件

五.注冊(cè)

六.調(diào)用

七.展示效果

八.代碼

1.qmlandc.h

2.qmlandc.cpp

3.main.cpp

4.qml

一.介紹

在 Qt 中,QML 與 C++ 交互是非常重要的,因?yàn)樗试S開(kāi)發(fā)人員充分利用 QML 和 C++ 各自的優(yōu)勢(shì),實(shí)現(xiàn)更加靈活和高效的應(yīng)用程序開(kāi)發(fā)。

QML 是一種聲明性的語(yǔ)言,用于構(gòu)建用戶界面,具有直觀、簡(jiǎn)潔和易于理解的特點(diǎn),適合用于描述界面的外觀和交互邏輯。而 C++ 是一種強(qiáng)大的編程語(yǔ)言,可以進(jìn)行復(fù)雜的計(jì)算和處理邏輯,適合用于實(shí)現(xiàn)底層功能和業(yè)務(wù)邏輯。

通過(guò) QML 與 C++ 的交互,可以實(shí)現(xiàn)以下作用和重要性:

1.性能優(yōu)化:C++ 可以處理復(fù)雜的計(jì)算和邏輯,可以提高應(yīng)用程序的性能。通過(guò)將一些計(jì)算密集型的任務(wù)交給 C++ 處理,可以提高應(yīng)用程序的響應(yīng)速度和性能表現(xiàn)。

2.業(yè)務(wù)邏輯處理:C++ 可以處理底層的業(yè)務(wù)邏輯,如數(shù)據(jù)處理、文件操作、網(wǎng)絡(luò)通信等。QML 可以專注于界面的呈現(xiàn)和交互邏輯,而將復(fù)雜的業(yè)務(wù)邏輯交給 C++ 處理,可以更好地分離界面和業(yè)務(wù)邏輯,提高代碼的可維護(hù)性和可重用性。

3.跨平臺(tái)開(kāi)發(fā):Qt 支持跨平臺(tái)開(kāi)發(fā),通過(guò) QML 與 C++ 的交互,可以實(shí)現(xiàn)跨平臺(tái)的應(yīng)用程序開(kāi)發(fā)。開(kāi)發(fā)人員可以在 QML 中描述界面,同時(shí)在 C++ 中處理平臺(tái)相關(guān)的邏輯,從而實(shí)現(xiàn)跨平臺(tái)的應(yīng)用程序開(kāi)發(fā)。

4.靈活性和可擴(kuò)展性:通過(guò) QML 與 C++ 的交互,可以實(shí)現(xiàn)界面與邏輯的分離,使得應(yīng)用程序結(jié)構(gòu)更加清晰和靈活。開(kāi)發(fā)人員可以根據(jù)需求選擇在 QML 中實(shí)現(xiàn)界面邏輯,或者在 C++ 中實(shí)現(xiàn)復(fù)雜的邏輯,從而實(shí)現(xiàn)更加靈活和可擴(kuò)展的應(yīng)用程序。

總的來(lái)說(shuō),QML 與 C++ 交互的作用和重要性在于充分發(fā)揮各自的優(yōu)勢(shì),實(shí)現(xiàn)界面與邏輯的分離,提高應(yīng)用程序的性能、可維護(hù)性和可擴(kuò)展性,從而更好地滿足復(fù)雜應(yīng)用程序的開(kāi)發(fā)需求。

二.pro文件添加模塊

.qml模塊

三.h文件

1.首先,繼承自?QObject?類,是 Qt 框架中所有 QML 對(duì)象的基類。

2.其次,定義了一個(gè)?Q_PROPERTY?宏,用于在 QML 中聲明此類的屬性,并提供?READ、WRITE?和?NOTIFY?三個(gè)選項(xiàng)。這里定義了一個(gè)名為?name?的屬性,可以在 QML 中通過(guò)?name?訪問(wèn),通過(guò)?getname?函數(shù)獲取屬性值,通過(guò)?setName?函數(shù)設(shè)置屬性值,并通過(guò)?NameChangedSig?信號(hào)通知 QML 端屬性值的改變。

3.接下來(lái),構(gòu)造函數(shù)?qmlandc(),可以在此處進(jìn)行一些初始化工作。

4.然后,定義了一個(gè)?setName?函數(shù),用于在 C++ 端設(shè)置?name?屬性的值,并在函數(shù)末尾通過(guò)?NameChangedSig?信號(hào)通知 QML 端屬性值的改變。

5.接下來(lái),定義了一個(gè)?getname?函數(shù),用于在 C++ 端獲取?name?屬性的值。

6.最后,定義了一個(gè)?NameChangedSig?信號(hào),用于在 C++ 端通知 QML 端?name?屬性值的改變。

四.cpp文件

1.首先,構(gòu)造函數(shù)?qmlandc()?將?m_name?屬性初始化為字符串 "美女"。

2.然后,setName?函數(shù)用于設(shè)置?m_name?屬性的值。如果傳入的?name?參數(shù)與當(dāng)前?m_name?屬性的值相同,則直接返回,不進(jìn)行任何操作。否則,將?m_name?屬性的值設(shè)置為傳入的?name?參數(shù),并通過(guò)?qDebug()?函數(shù)輸出當(dāng)前?m_name?屬性的值,最后通過(guò)?emit?關(guān)鍵字觸發(fā)?NameChangedSig?信號(hào)。

3.最后,getname?函數(shù)用于獲取?m_name?屬性的值,并將其作為?QString?類型的返回值返回。

五.注冊(cè)

六.調(diào)用

七.展示效果

初始值調(diào)用c++中g(shù)etname顯示為:美女,

點(diǎn)擊矩形框調(diào)用c++中setname為:帥哥。

八.代碼

1.qmlandc.h

#ifndef QMLANDC_H

#define QMLANDC_H

#include

#include

class qmlandc : public QObject

{

Q_OBJECT

Q_PROPERTY(QString name READ getname WRITE setName NOTIFY NameChangedSig)

public:

qmlandc();

void setName(QString name);

QString getname();

signals:

void NameChangedSig();

public slots:

private:

QString m_name;

};

#endif // QMLANDC_H

2.qmlandc.cpp

#include "qmlandc.h"

qmlandc::qmlandc()

{

m_name = "美女";

}

void qmlandc::setName(QString name)

{

if(m_name == name){

return ;

}

m_name = name ;

qDebug()<<"aaaaaaaa"<

emit NameChangedSig();

}

QString qmlandc::getname()

{

return m_name;

}

3.main.cpp

#include

#include

#include

#include "qmlandc.h"

int main(int argc, char *argv[])

{

QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);

QGuiApplication app(argc, argv);

//qmlRegisterType注冊(cè)c++類型至qml

//arg1:import時(shí)模塊名

//arg2:主版本號(hào)

//arg3:次版本號(hào)

//arg4:qml類型名

qmlRegisterType("Qmlqmlandc", 1, 0 ,"Qmlqmlandc");

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);

engine.load(url);

return app.exec();

}

4.qml

import QtQuick 2.7

import Qmlqmlandc 1.0

import QtQuick.Window 2.2

import QtQuick.Controls 1.4

Window {

visible: true

width: 400

height: 400

Qmlqmlandc{

id:_Qmlqmlandc

}

Rectangle{

anchors.fill: parent

Rectangle{

width: 50

height: 50

border.width: 1

border.color: "black"

MouseArea{

anchors.fill: parent

onClicked: {

_Qmlqmlandc.name = "帥哥"

}

}

}

Text {

anchors.right: parent.right

anchors.rightMargin: 100

font.pixelSize: 30

text: _Qmlqmlandc.name

}

}

}

柚子快報(bào)激活碼778899分享:QT:QML與C++交互

http://yzkb.51969.com/

好文推薦

評(píng)論可見(jiàn),查看隱藏內(nèi)容

本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場(chǎng)。

轉(zhuǎn)載請(qǐng)注明,如有侵權(quán),聯(lián)系刪除。

本文鏈接:http://m.gantiao.com.cn/post/19124659.html

發(fā)布評(píng)論

您暫未設(shè)置收款碼

請(qǐng)?jiān)谥黝}配置——文章設(shè)置里上傳

掃描二維碼手機(jī)訪問(wèn)

文章目錄