文章目录

  • 附件
  • QML开发笔记(二):创建QML项目
  • 方法一:直接创建Qt Quick模板
  • 方法二:创建Qt Widget模板后,更改为Qt Quick模板
  • 1、添加QML资源文件
  • 2、创建qml窗口界面
  • 3、更改pro文件的配置
  • 4、更改main.cpp调用界面的方式
  • 4、删除多余的界面
  • 5、重新构建项目,运行


附件

QML开发笔记(二):创建QML项目

方法一:直接创建Qt Quick模板

打开Qt Creator,选择文件新建文件或项目,选择ApplicationQt Quick Application - Empty

qml调用Android接口_c++

注:Qt Quick是编写QML应用的标准库。Qt Quick模块提供了两种接口:使用QML语言创建应用的QML接口和使
用C++语言扩展QML的C++接口。

模板名称

说明

Qt Quick-Application - Empty

一个 的Qt Quick模板项目工程

Qt Quick-Application - Scroll

一个 ScrollView类型/可滚动列表视图 的Qt Quick模板项目工程 (需要 Qt 5.9 或者更高版本)。

Qt Quick-Application - Stack

一个 StackView类型/基于堆的导航模型页面 的Qt Quick模板项目工程(需要 Qt 5.7 或者更高版本)。

Qt Quick-Application - Swipe

一个 SwipeView 类型/基于堆的导航模型页面 的Qt Quick模板项目工程(需要 Qt 5.7 或者更高版本)。

一路下一步,到Kits时注意,选择一个Kits,下一步。

qml调用Android接口_qml调用Android接口_02

有些同学会出现如下提示:

Add a kit in the options or via the maintenance tool of the SDK.

qml调用Android接口_编程语言_03


具体原因笔者也没找到,但是可以用第二种创建项目的方法解决。创建好的项目如下:

qml调用Android接口_编程语言_04

方法二:创建Qt Widget模板后,更改为Qt Quick模板

打开Qt Creator,选择文件新建文件或项目,选择ApplicationQt Widgets Application

qml调用Android接口_c++_05

一路下一步到Kits的时候,发现又可以选择了。

qml调用Android接口_编程语言_06


那么我们先创建出Widgets。

qml调用Android接口_qml_07


我们下面要做的是把一个Qt Widgets 工程改成 Qt Quick 工程。

1、添加QML资源文件

右键项目目录,选择Add New…(我删除了多余资源,删除资源的步骤往下看)

qml调用Android接口_qml_08


选择Qt>Qt Resource File

qml调用Android接口_qt_09


创建名为qrc的资源文件

qml调用Android接口_qml调用Android接口_10

右键新创建的资源文件qrc,选择Add New(我删除了多余资源,删除资源的步骤往下看)

qml调用Android接口_qml_11

选择Qt->QML File(Qt Quick 2)

qml调用Android接口_编程语言_12

创建一个名为main的文件(名称可自定义)

qml调用Android接口_qt_13


创建好后如下:(我删除了多余资源,删除资源的步骤往下看)

qml调用Android接口_qml调用Android接口_14

2、创建qml窗口界面

更改main.qml里面的代码为基础窗口代码

import QtQuick 2.9
import QtQuick.Window 2.2

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

qml调用Android接口_c++_15

3、更改pro文件的配置

qml调用Android接口_qml_16

Qt += core gui更改为如下

TEMPLATE = app

QT += qml quick

qml调用Android接口_qml调用Android接口_17

4、更改main.cpp调用界面的方式

(1)、包含QML的支持库

#include <QQmlEngine>
#include <QQmlContext>
#include <QQmlApplicationEngine>

qml调用Android接口_qml_18


(2)、创建界面引擎

QQmlApplicationEngine engine;

qml调用Android接口_c++_19


(3)、更改窗口的调用方式

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QQmlApplicationEngine engine;
    engine.load(QUrl(QStringLiteral("qrc:/main.qml")));

    if (engine.rootObjects().isEmpty())
        return -1;
    return a.exec();
}

qml调用Android接口_qml_20

4、删除多余的界面

(1)、删除widgets界面文件

右键Forms>Remove Directory

qml调用Android接口_qml调用Android接口_21


(2)、删除widgets界面库文件

删除Headers里的mainwindow.h

删除Sources里的mainwindow.cpp

删除main.cpp里的代码#include “mainwindow.h”

5、重新构建项目,运行

右键项目>重新构建

qml调用Android接口_编程语言_22


构建完成后,选择Release生成即可。

qml调用Android接口_qml_23


qml调用Android接口_qml_24