2017-04-27 62 views
1

我想通過風格單身我的應用程序樣式Style.qml,我註冊使用qmlRegisterSingletonType。當我更改單身人士qml文件時,這些在重建應用程序時不會得到更新。風格從單身人士在構建期間未更新

以下行爲使我相信這是一個緩存問題:當我將新值添加到樣式文件的頂部時,所有舊值都會相應地移位。例如,查看下面給出的文件,如果我將另一行添加到字體大小,則此移位會導致在應用程序內部顯示值爲backgroundColorHighlight的任何項目的顏色爲backgroundColor。所以顏色被替換爲原來使用的行的值。

我在哪裏可以找到緩存文件(如果這是問題),這是造成這種奇怪的行爲,並手動清除它?

步驟我已經採取了迄今:

  • 通過Qt Creator的
  • Clened項目清理的項目,通過刪除生成文件夾
  • 檢查和.qmlc文件
  • 新增QML_DISABLE_DISK_CACHE手動。 pro file
  • ran 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 
} 

回答

2

假設窗口,緩存應該是:

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

這是一個已知bug,我居然discovered,禁止通過qputenv("QML_DISABLE_DISK_CACHE", "1");緩存中main.cpp實例化QML引擎會處理緩存問題之前。

+0

謝謝你的回答和記錄錯誤!對我來說似乎有點傻,該項目相關的數據應該存儲在用戶文件夾中。 –

+0

這就是Windows的方式。它依賴於平臺。標準系統路徑等。 – dtech