在没有 QML 的情况下部署 Qt 项目

Posted

技术标签:

【中文标题】在没有 QML 的情况下部署 Qt 项目【英文标题】:Deploy Qt-project without QML 【发布时间】:2016-12-15 12:21:55 【问题描述】:

可以在没有 QML 的情况下构建 Qt 项目吗?例如,对于没有 GUI 的项目,我们应该使用密钥 -no-gui 吗? QML 呢?谢谢。

【问题讨论】:

【参考方案1】:

您的项目只需要依赖它实际需要的 Qt 模块。

例如,在 QMake 项目文件中。这是通过QT 变量处理的。

例如要使用 QtNetwork 模块,可以这样做

QT += network

默认情况下,coregui 模块处于启用状态,要删除 gui 模块,请执行此操作

QT -= gui

该机制知道模块间的依赖关系,例如qml 依赖于corenetwork 所以

QT += qml

导致coreguinetworkqml 被选中。

由于qml 不依赖于gui,因此仍然可以删除

QT += qml
QT -= gui

导致corenetworkqml

显然,如果您在哪里选择qtquick,那么这也意味着gui 因为qtquick 取决于guiqml

【讨论】:

以上是关于在没有 QML 的情况下部署 Qt 项目的主要内容,如果未能解决你的问题,请参考以下文章

是否可以在没有 QApplication 的情况下使用 QML 和 QtQuick?

在没有 Q_PROPERTY 定义的情况下从 C++ 访问 QML 对象的属性

在 Windows 上部署 Qt (C++/QML) 应用程序

QT Creator 构建 qml 应用程序

如何从 QT 项目中正确删除 QML 文件

如何在 Qt Quick 中将 QML 项目转换为相应的 C++ 项目