QML导入版本2.0与2.12、2.15等次版本区别及选用指南
QML导入版本规则解答
结论:仅导入import QtQuick 2.0无法使用Qt 5.12自带的QtQuick全部最新特性,你需要导入import QtQuick 2.12才能调用对应版本的所有新增功能。
具体规则如下:
- QML的导入版本号声明的是你需要使用的模块API的版本层级:当你导入
QtQuick 2.0时,QML引擎只会暴露QtQuick 2.0及更早版本的所有类型、属性、方法,后续版本新增的API会被完全隐藏,哪怕你的运行环境安装的是更高版本的Qt也无法调用。 - 举个实际例子:
RoundButton类型是QtQuick 2.10版本才新增的控件,如果你仅导入QtQuick 2.0,哪怕运行在Qt 5.12环境下,写RoundButton {}也会直接报「类型不存在」的错误,只有将导入版本提升到2.10及以上才能正常使用该控件。 - 你可以导入低于当前Qt对应版本的模块版本:只要你用到的所有API都在导入版本的支持范围内,程序就可以正常运行,这种写法的优势是代码可以兼容更低版本的Qt运行环境。如果你的项目不需要向下兼容旧版Qt,直接导入和你所用Qt版本匹配的最高次版本即可,即可解锁该版本QtQuick的全部特性。
- 注意不要导入高于当前环境支持的版本:比如你用Qt 5.12却导入
QtQuick 2.15,导入语句会直接报错,程序无法正常启动。
内容的提问来源于stack exchange,提问作者Kevin
相关产品推荐
相关产品推荐

