为Qml提供部分简单的预处理命令。
在不改变和影响原有语法的前提下提高qml开发效率。有一些qml项目兼顾与Qt4与Qt5版本,由于QML不用编译,但解释在运行时,使预处理指令不能用于直接通过QML。一般采用的方法是直接改文件内容,也就仅限于部分的修改。如: Qt4版本下:
import QtQuick 1.0在Qt5版本下要修改成:
import QtQuick 2.0如果能像C/C++一样有预处理宏就不用那么麻烦了。本工具就是为了解决这一烦恼。
#ifdef宏使用基本一样,但需要在其前添加//如://,否则将会添加//。//#ifdef Qt4
...
//#endif等价于C/C++宏:
#ifdef Qt4
...
#endifpython run.py {qml文件名} {宏定义(可多个)}python run.py Test.qml Qt5//#ifdef Qt4
import QtQuick 1.0
//#else
import QtQuick 2.0
//#endif执行后
//#ifdef Qt4
//import QtQuick 1.0
//#else
import QtQuick 2.0
//#endifhttps://github.com/aeagean/QmlPreprocessing//#ifdef Qt4
//import QtQuick 1.0
//#else
import QtQuick 2.0
//#endif
//#ifdef Qt5.7
//import QtQuick.Controls 2.0
//#else
import "Combobox"
//#endif
Item {
width: 100; height: 100
//#ifdef Qt5
MultiPointTouchArea { /* Qt5多点触控 */
}
//#endif
ComboBox {
model: ["First", "Second", "Third"]
}
}