文章目录
- 附件
- 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,选择文件,新建文件或项目,选择Application,Qt Quick Application - Empty。
注: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,下一步。
有些同学会出现如下提示:
Add a kit in the options or via the maintenance tool of the SDK.
具体原因笔者也没找到,但是可以用第二种创建项目的方法解决。创建好的项目如下:
方法二:创建Qt Widget模板后,更改为Qt Quick模板
打开Qt Creator,选择文件,新建文件或项目,选择Application,Qt Widgets Application。
一路下一步到Kits的时候,发现又可以选择了。
那么我们先创建出Widgets。
我们下面要做的是把一个Qt Widgets 工程改成 Qt Quick 工程。
1、添加QML资源文件
右键项目目录,选择Add New…(我删除了多余资源,删除资源的步骤往下看)
选择Qt>Qt Resource File
创建名为qrc的资源文件
右键新创建的资源文件qrc,选择Add New(我删除了多余资源,删除资源的步骤往下看)
选择Qt->QML File(Qt Quick 2)
创建一个名为main的文件(名称可自定义)
创建好后如下:(我删除了多余资源,删除资源的步骤往下看)
2、创建qml窗口界面
更改main.qml里面的代码为基础窗口代码
import QtQuick 2.9
import QtQuick.Window 2.2
Window {
visible: true
width: 640
height: 480
title: qsTr("Hello World")
}
3、更改pro文件的配置
把Qt += core gui更改为如下
TEMPLATE = app
QT += qml quick
4、更改main.cpp调用界面的方式
(1)、包含QML的支持库
#include <QQmlEngine>
#include <QQmlContext>
#include <QQmlApplicationEngine>
(2)、创建界面引擎
QQmlApplicationEngine engine;
(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();
}
4、删除多余的界面
(1)、删除widgets界面文件
右键Forms>Remove Directory
(2)、删除widgets界面库文件
删除Headers里的mainwindow.h
删除Sources里的mainwindow.cpp
删除main.cpp里的代码#include “mainwindow.h”
5、重新构建项目,运行
右键项目>重新构建
构建完成后,选择Release生成即可。