首页 > 其他分享 >QML入门教程(1): Qt Quick与QML介绍

QML入门教程(1): Qt Quick与QML介绍

时间:2023-01-14 12:55:12浏览次数:62  
标签:QtQuick Qt 入门教程 QML Quick import qml

1 什么是Qt Qucik?        

        Qt Quick是QtSDK4.7中引入的一种新的界面开发框架,使用QtQuick,你可以快速、 轻松地创建供移动和嵌入式设备使用的动态触摸式界面和轻最级应用程序,这也是它被命名 为Quick的原因.

        Qt Quick包括描述性语言QML、语言运行时、 大量的用户界面元素、Qt Creator对QML的完美支持、Qt Quick设计器、QML与C++混合 编程支持等众多技术,使用它你可以轻松、快速地为移动和嵌入式设备创建流畅的用户界面. 在Android等移动设备上,Qt Quick应用默认使用0penGLES,渲染效率很高,你可以 用它创建非常炫、非常酷、非常迷人的界面.QML可以扩展现有的应用程序,也可以称之为“二次开发”。说实话在毕业刚入职时接触了类似的项目,当时也是一脸懵逼,怎么会有这种形式的开发,在别人做好的软件上直接修改。其实类似的二次开发有CAD, Catia等,不过它们是dll, com组件这种插件的模式。

        QtQuick能够与C++,JS有机结合混合编程,开发者可以使用已有的Qt技术结合Qt Quick, 创建更好的应用程序。

        相对于QWidget, MFC等,qml创建应用程序可能会更简单一些。

2 新建Qt Quick项目

       打开QtCreator,我所用的版本是Qt5.12, Qt Quick默认提供了四种基础项目:

 

(1)空项目Empty

(2)Scroll

(3)页面切换Stack

(4)多页面切换Swipe

       下面创建一个空的qml项目,QtCreator会给我们创建好,默认的两个文件main.cpp,  main.qml 

       main.qml代码

import QtQuick 2.12

import QtQuick.Window 2.12

 

Window {

    visible: true

    width: 640

    height: 480

    title: qsTr("Hello World")

    color:"gray"

}

 

我加了个属性color, 修改窗口背景颜色。

    一个qml文件主要由两部分组成:

  •     import语句 :这个就像C++中的头文件, 
  •     QML对象树 :根对象是Window,  然后可以在Window中添加各种控件,例如按钮,文本,菜单等

         main.cpp

#include <QGuiApplication>

#include <QQmlApplicationEngine>

 

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

    engine.load(url);

 

    return app.exec();

}

       该文件是C++代码,用QML引擎加载main.qml文件,显示窗口,如主循环。

       该程序的界面如下:

 

 

例如下面是在Window中加了一个按钮和矩形

       代码如下:

import QtQuick 2.12

import QtQuick.Window 2.12

import QtQuick.Controls 2.5

 

Window {

    visible: true

    width: 640

    height: 480

    title: qsTr("Hello World")

    color:"gray"

 

    Button

    {

        id:quit

        text:"tuichu"

        anchors.left:parent.left

        anchors.leftMargin:4

        anchors.bottom:parent.bottom

        anchors.bottomMargin:4

 

        onClicked:{

            Qt.quit()

        }

    }

 

    Rectangle

    {

        x:100

        y:70

        width:100

        height:50

        color:"#00C0CC"

        z:1

        opacity:0.6

    }

}

     因为引入了按钮,那么就得导入它的头文件   import QtQuick.Controls 2.5,运行界面 如下

 

        各个控件怎么放呢,这就涉及到布局,可以使用锚点相对布局,也可以 用绝对布局,在后面的文章中介绍。

 

from:https://mingshiqiang.blog.csdn.net/article/details/105788650

标签:QtQuick,Qt,入门教程,QML,Quick,import,qml
From: https://www.cnblogs.com/im18620660608/p/17051599.html

相关文章

  • Cesium之Quick Start
    1.引言Cesium是一款三维地球和地图可视化开源JavaScript库,使用WebGL来进行硬件加速图形,使用时不需要任何插件支持,基于Apache2.0许可的开源程序,可以免费用于商业和非商业......
  • 软件开发入门教程网之Git 查看提交历史
    Git查看提交历史Git提交历史一般常用两个命令:gitlog -查看历史提交记录。gitblame<file> -以列表形式查看指定文件的历史修改记录。​​gitlog{#git-log}​​在......
  • 软件开发入门教程网之Git 分支管理
    Git分支管理几乎每一种版本控制系统都以某种形式支持分支。使用分支意味着你可以从开发主线上分离开来,然后在不影响主线的同时继续工作。有人把Git的分支模型称为必杀......
  • 软件开发入门教程网之Git 基本操作
    Git基本操作Git的工作就是创建和保存你项目的快照及与之后的快照进行对比。本章将对有关创建与提交你的项目快照的命令作介绍。Git常用的是以下6个命令:gitclone ......
  • 软件开发入门教程网之TypeScript 声明文件
    TypeScript声明文件TypeScript作为JavaScript的超集,在开发过程中不可避免要引用其他第三方的JavaScript的库。虽然通过直接引用可以调用库的类和方法,但是却无法使用Ty......
  • 软件开发入门教程网站之TypeScript Array(数组)
    TypeScriptArray(数组)数组对象是使用单独的变量名来存储一系列的值。数组非常常用。假如你有一组数据(例如:网站名字),存在单独变量如下所示:varsite1="Google";varsite2="Ru......
  • 软件开发入门教程网之TypeScript 基础语法
    TypeScript基础语法TypeScript程序由以下几个部分组成:模块函数变量语句和表达式注释​​第一个TypeScript程序​​我们可以使用以下TypeScript程序来输出"HelloWorl......
  • 软件开发入门教程网之TypeScript 类
    TypeScript类TypeScript是面向对象的JavaScript。类描述了所创建的对象共同的属性和方法。TypeScript支持面向对象的所有特性,比如类、接口等。TypeScript类定义方式如......
  • OpenCV入门教程,超详细OpenCV入门教程!10小时让你轻松掌握opencv的使用
    OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉和机器学习软件库,可以运行在Linux、Windows、Android和macOS操作系统上。它轻量级而且高效——由一系列C函数和少量......
  • 软件开发入门教程网之MySQL NULL 值处理
    MySQLNULL值处理我们已经知道MySQL使用SQLSELECT命令及WHERE子句来读取数据表中的数据,但是当提供的查询条件字段为NULL时,该命令可能就无法正常工作。为了处理这......