构建期间未更新单身人士的样式

时间:2017-04-27 11:34:00

标签: qt qml qt-quick

我正在尝试通过使用Style.qml注册的样式单qmlRegisterSingletonType来设置我的应用程序样式。当我对单例qml文件进行更改时,这些在重建应用程序时不会更新。

以下行为让我相信这是一个缓存问题:当我在样式文件的顶部添加新值时,所有旧值都会相应地移位。例如,查看下面给出的文件,如果我向fontsizes添加另一行,则此移位会导致任何值为backgroundColorHighlight的项目在应用程序内显示为backgroundColor的颜色。因此,颜色将被替换为以前的线的值。

我在哪里可以找到缓存文件(如果这是问题),负责这种奇怪的行为并手动清除它?

到目前为止我采取的步骤:

  • 通过Qt Creator清理项目
  • 通过删除构建文件夹
  • 手动清除项目
  • 已检查和.qmlc个文件
  • QML_DISABLE_DISK_CACHE添加到.pro文件
  • 重建前qmake

现在我完全没有想法。还有Qt Creator / qmake可以“隐藏”缓存文件的其他地方吗?

Style.qml:

pragma Singleton
import QtQuick 2.8

QtObject {
    //basic fonts
    property int fontSizeSmall: 8
    property real fontSizeMedium: 10
    property real fontSizeLarge: 14
    property string primaryFontColor: "#eeeeee"

    //backgrounds
    property string backgroundColorTransparent: "#4a4a4a88"
    property string backgroundColor: "#4a4a4a"
    property string backgroundHighlight: "#9a9a9a"
    property string backgroundColorLight: "#7a7a7a"

    property string dragTileBackgroundColor: "#5a5a5a"
    property string titleBarColor: "#3a3a3a"

    property color borderDarkColor: "#3a3a3a"

    property string mapMarkerFavorite: "#00ff00";
    property string mapMarker: "#ff3333";
    property string mapMarkerHighlight: "#ff8888";

    property string miniMapFillColor: "#ffffff"
    property string miniMapBorderColor: "#ffffff"
    property real miniMapBorderWidth: 1
    property real particleMiniMapOpacity: 0.5

    property int listElementHeight: 30
}

1 个答案:

答案 0 :(得分:2)

假设有窗口,缓存应该在:

users\yourUser\AppData\Local\yourApp\cache\qmlcache

有一个已知的bug,我实际上discovered,在实例化QML引擎处理缓存问题之前,通过qputenv("QML_DISABLE_DISK_CACHE", "1");中的main.cpp禁用缓存。