• 4572阅读
  • 0回复

[提问]QT QML同时支持Material和Universal两个主题 [复制链接]

上一主题 下一主题
离线reerayxia
 

只看楼主 倒序阅读 楼主  发表于: 2017-03-02
背景,出于好玩,希望APP同时支持Material和Universal两个主题

问题1,PC平台,正常需要加QT += quickcontrols2编译出来的文件
动态编译没事,但是,静态编译,必须选择兼容性才能执行
    PS:静态编译,第一次选QT+=quickcontrols2,后面,删掉,在编译,居然也可以通过,而且不用选择兼容模式亦可执行

问题2,安卓平台
因为希望用户设定Material和Universal
结果坑爹。。。测试了好久,最好报错
plugin cannot be loaded for module ".data.user.0.com.qt.np.qt-reserved-files.qml.QtQuick.Controls.2.Material": Module namespace 'QtQuick.Controls.Material' does not match import URI '.data.user.0.com.qt.np.qt-reserved-files.qml.QtQuick.Controls.2.Material'
原因就是默认将路径中的/改成了.???
注:最后测试是,调用QQuickStyle::setStyle("Material");
就会出错


测试了好久的解决方案
在APP中通过调用

    if (sty == "mat") {
        qputenv("QT_QUICK_CONTROLS_CONF", ":/qtquickcontrols2material.conf");
    } else {
        qputenv("QT_QUICK_CONTROLS_CONF", ":/qtquickcontrols2universal.conf");
    }

快速回复
限100 字节
 
上一个 下一个