Qt 生成期间未更新单例中的样式

Qt 生成期间未更新单例中的样式,qt,qml,qt-quick,Qt,Qml,Qt Quick,我试图通过使用qmlRegisterSingletonType注册的样式单例style.qml来设置应用程序的样式。当我对Singleton qml文件进行更改时,在重新构建应用程序时,这些文件不会得到更新 以下行为使我相信这是一个缓存问题:当我向样式文件的顶部添加新值时,所有旧值都会相应地移动。例如,查看下面给出的文件,如果我在fontsizes中添加另一行,此移动将导致任何值为backgroundColorHighlight的项目在应用程序内部以backgroundColor的颜色显示。因此

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

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

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

到目前为止,我采取了以下步骤:

  • 通过Qt Creator清理项目
  • 通过删除生成文件夹手动删除项目
  • 已检查和
    .qmlc
    文件
  • 在.pro文件中添加了
    QML\u DISABLE\u DISK\u CACHE
  • 重建前运行
    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
}

假设为windows,缓存应位于:

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


有一个已知的,我实际上通过
qputenv(“QML\u DISABLE\u DISK\u CACHE”,“1”)禁用缓存main.cpp中的code>将处理缓存问题。

感谢您的回答和记录错误!在我看来,这似乎有点愚蠢,与项目相关的数据应该存储在用户文件夹中。windows就是这样做的。它依赖于平台。标准系统路径等。