国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【Qt QML入門】第一個(gè)Quick應(yīng)用

這篇具有很好參考價(jià)值的文章主要介紹了【Qt QML入門】第一個(gè)Quick應(yīng)用。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

運(yùn)行結(jié)果:

【Qt QML入門】第一個(gè)Quick應(yīng)用,qt5,qml,c++

打開Qt Creator,創(chuàng)建一個(gè)Qt Quick Qpplication,IDE為我們創(chuàng)建一個(gè)應(yīng)用工程,其中包含如下文件:【Qt QML入門】第一個(gè)Quick應(yīng)用,qt5,qml,c++

.pro工程文件,我們通過它來打開整個(gè)工程:

QT += quick

# You can make your code fail to compile if it uses deprecated APIs.
# In order to do so, uncomment the following line.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0

SOURCES += \
        main.cpp

RESOURCES += qml.qrc

# Additional import path used to resolve QML modules in Qt Creator's code model
QML_IMPORT_PATH =

# Additional import path used to resolve QML modules just for Qt Quick Designer
QML_DESIGNER_IMPORT_PATH =

# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target

?在工程文件中,通常其中的字段定義:

QT += :這個(gè)是添加QT需要的模塊

TARGET = :生成最后目標(biāo)的名字

TEMPLATE =:應(yīng)用程序的生成模式,默認(rèn)是app生成應(yīng)用程序,如果需要生成庫的話就用lib

CONFIG +=:一些配置信息

HEADERS +=:工程用到的頭文件

SOURCES +=:工程用到的源文件

FORMS +=:工程中的ui文件

LIBS +=:工程依賴的靜態(tài)庫和動(dòng)態(tài)庫路徑

INCLUDEPATH += :工程需要的頭文件路徑

DESTDIR +=:目標(biāo)生成路徑

DEPENDPATH +=:工程的依賴路徑

main.qml 是Quick應(yīng)用的主窗口文件,下一篇我們重點(diǎn)介紹QML當(dāng)中的元素特性,目前只需要了解這個(gè)是應(yīng)用的主窗體。?

import QtQuick 2.15
import QtQuick.Window 2.15

Window {
    width: 640
    height: 480
    visible: true
    title: qsTr("Hello World")
}

main.cpp中的main函數(shù),是整個(gè)應(yīng)用的入口函數(shù)。

#include <QGuiApplication>
#include <QQmlApplicationEngine>


int main(int argc, char *argv[])
{
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
    QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
#endif
    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);
    engine.load(url);

    return app.exec();
}
QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);

setAttribute:用來啟用和禁用改變應(yīng)用程序范圍功能行為的屬性。上述代碼中的Qt::AA_EnableHighDpiScaling屬性是在Qt中啟用高DPI縮放。

QGuiApplication app(argc, argv);

派生關(guān)系:

QObject->QCoreApplication->QGuiApplication->QApplication

QGuiApplication包含主事件循環(huán),所有來自窗口系統(tǒng)和其他源的事件都在其中被處理和分派。它還處理應(yīng)用程序的初始化和結(jié)束,并提供會話管理。此外,QGuiApplication處理大多數(shù)系統(tǒng)范圍和應(yīng)用程序范圍的設(shè)置。
對于任何使用Qt的GUI應(yīng)用程序,無論該應(yīng)用程序在任何給定時(shí)間是否有0、1、2或更多窗口,都只有一個(gè)QGuiApplication對象。對于非GUI Qt應(yīng)用程序,使用QCoreApplication代替,因?yàn)樗灰蕾囉赒t GUI模塊。對于基于QWidget的Qt應(yīng)用程序,使用QApplication代替,因?yàn)樗峁┝藙?chuàng)建QWidget實(shí)例所需的一些功能。
QGuiApplication對象可以通過instance()函數(shù)訪問,該函數(shù)返回一個(gè)與全局qApp指針等效的指針。

QQmlApplicationEngine engine;

QQmlApplicationEngine類結(jié)合了QQmlEngine和QQmlComponent,以提供一種方便的方式來加載單個(gè)QML文件。

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

加載位于url的根QML文件。文件定義的對象樹將立即為本地文件url創(chuàng)建。異步加載遠(yuǎn)程url,監(jiān)聽objectCreated信號以確定對象樹何時(shí)準(zhǔn)備好。
如果發(fā)生錯(cuò)誤,則發(fā)出objectCreated信號,并以空指針作為參數(shù),并打印帶有qWarning的錯(cuò)誤消息。?文章來源地址http://www.zghlxwxcb.cn/news/detail-527975.html

到了這里,關(guān)于【Qt QML入門】第一個(gè)Quick應(yīng)用的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Qt6 Qt Quick UI原型學(xué)習(xí)QML第六篇

    Qt6 Qt Quick UI原型學(xué)習(xí)QML第六篇

    import QtQuick 2.12 :導(dǎo)入QtQuick模塊的版本2.12,用于創(chuàng)建Qt快速應(yīng)用程序的用戶界面。 import QtQuick.Window 2.12 :導(dǎo)入QtQuick.Window模塊的版本2.12,用于創(chuàng)建窗口對象。 import QtQuick.Controls 2.12 :導(dǎo)入QtQuick.Controls模塊的版本2.12,用于創(chuàng)建用戶界面控件。 Window {} :定義了一個(gè)窗口對象,

    2024年02月16日
    瀏覽(24)
  • Qt6 Qt Quick UI原型學(xué)習(xí)QML第二篇

    Qt6 Qt Quick UI原型學(xué)習(xí)QML第二篇

    元素可以分為 視覺元素和非視覺元素 。視覺元素(如Rectangle)具有幾何形狀,并且通常在屏幕上呈現(xiàn)一個(gè)區(qū)域。非可視元素(如Timer)提供一般功能,通常用于操作可視元素。 目前,我們將關(guān)注基本的視覺元素,例如 Item, Rectangle, Text, Image和MouseArea 。但是,通過使用Qt Quick Contro

    2024年02月16日
    瀏覽(24)
  • Qt6 Qt Quick UI Prototype學(xué)習(xí)QML第一篇

    Qt6 Qt Quick UI Prototype學(xué)習(xí)QML第一篇

    創(chuàng)建一個(gè)具有QML入口點(diǎn)的Qt Quick 2 UI項(xiàng)目。要使用它,您需要設(shè)置一個(gè)QML運(yùn)行時(shí)環(huán)境,例如gmlscene。 僅當(dāng)您正在進(jìn)行原型設(shè)計(jì)時(shí)才使用此功能。您無法使用此創(chuàng)建完整的應(yīng)用程序。請考慮使用Qt Quick application項(xiàng)目 Qt Quick UI原型主要用于快速創(chuàng)建交互式的用戶界面(UI)原型。它

    2024年02月16日
    瀏覽(20)
  • QML Qt4版本移植到Qt5概述

    在Qt5中,QML應(yīng)用程序使用OpenGL場景圖架構(gòu)來渲染,而在Qt4中使用的是圖形視圖框架。這種結(jié)構(gòu)上的變化導(dǎo)致C++接口進(jìn)行了大量重構(gòu)。QtDeclarative模塊已被棄用,該模塊的類被移動(dòng)到新的QtQML和QtQuick模塊中,名稱有了變化,如表3-1所列。如果需要使用Qt5中新的QQml 和QQuick 等類,需

    2024年01月25日
    瀏覽(33)
  • 【QT教程】QT6 QML在虛擬現(xiàn)實(shí)中的應(yīng)用

    主頁??軟件開發(fā)??QT6 QML框架原理與源碼分析 補(bǔ)天云火鳥自動(dòng)化創(chuàng)作平臺 您能夠創(chuàng)建大約3000 個(gè)短視頻 一天可以輕松創(chuàng)建多達(dá) 100 個(gè)視頻 【免費(fèi)公開課 QT視頻課程】您真的能免費(fèi)看很多有用的QT視頻! QT6_QML在虛擬現(xiàn)實(shí)中的應(yīng)用 使用AI技術(shù)輔助生成 目錄 1??QT6_QML基礎(chǔ)回顧 1.

    2024年04月15日
    瀏覽(25)
  • [QT編程系列-41]:Qt QML與Qt widget 深入比較,快速了解它們的區(qū)別和應(yīng)用場合

    [QT編程系列-41]:Qt QML與Qt widget 深入比較,快速了解它們的區(qū)別和應(yīng)用場合

    目錄 1. Qt QML與Qt widget之爭 1.1 出現(xiàn)順序 1.2 性能比較 1.3 應(yīng)用應(yīng)用領(lǐng)域 1.4 發(fā)展趨勢 1.5 QT Creator兼容上述兩種設(shè)計(jì)風(fēng)格 2. 界面描述方式的差別 3. QML和Widgets之間的一些比較 4. 選擇QML和Widgets之間的Qt技術(shù)時(shí),可以考慮以下幾個(gè)因素: 5 QT .ui 文件(XML格式) 6 Qt Quick 7. Qt Widgets可以

    2024年02月05日
    瀏覽(23)
  • Qml Qt程序 打包部署

    利用qtcreator安裝目錄下的命令行工具執(zhí)行打包命令 1、Widget程序打包 // 將release模式下的exe文件放在單獨(dú)的打包目錄下 // 打開qt自帶的命令行工具,執(zhí)行下面的語句 windeployqt path-to-app-binary ?// path-to-app-binary表示需要打包的二進(jìn)制文件 2、Qml程序打包 // 延用Widget程序打包步驟,

    2024年02月09日
    瀏覽(22)
  • 【Qt- C++ & Qml 交互】

    2024年01月10日
    瀏覽(35)
  • Qt中如何在qml文件中使用其他的qml文件并創(chuàng)建對象

    如果想使用其他的qml文件直接創(chuàng)建對象,必須先這樣導(dǎo)入其qml文件并as成別名,才可以創(chuàng)建對象并使用它。 一、導(dǎo)入qml文件,例如: 二、使用別名創(chuàng)建對象 三、使用創(chuàng)建的對象 秋風(fēng)寫于淄博,業(yè)務(wù)交流與技術(shù)咨詢:Q375172665

    2024年02月12日
    瀏覽(33)
  • QT C++類與QML交互

    C++方負(fù)責(zé)數(shù)據(jù),QML負(fù)責(zé)顯示,先準(zhǔn)備工作如下: (1)新建一個(gè)數(shù)據(jù)類,繼承至QObject class Cdata : public QObject (2)將有交互關(guān)系的數(shù)據(jù),加入到類的私有成員中 private: int iNum; QString strEdit; (3)給此成員Q_PROPERTY和相應(yīng)的函數(shù)實(shí)現(xiàn)(ALT+回車可自動(dòng)創(chuàng)建) Q_PROPERTY(int iNum READ getINum W

    2024年02月04日
    瀏覽(34)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包