2017-04-27 13 views
1

qmlRegisterSingletonTypeを使用して登録するスタイルシングルトンStyle.qmlでアプリケーションのスタイルを設定しようとしています。シングルトンのqmlファイルを変更すると、アプリケーションを再ビルドするときに更新されません。シングルトンのスタイルはビルド中に更新されません

これはキャッシングの問題であると私は考えています。新しい値をスタイルファイルの先頭に追加すると、すべての古い値がそれに応じてシフトします。たとえば、以下のファイルを見ると、フォントサイズに別の行を追加すると、このシフトはbackgroundColorHighlightの値を持つ項目にはアプリケーション内にbackgroundColorの色で表示されます。したがって、色は以前に使用されていたラインの値に置き換えられます。

この異常な動作の原因となるキャッシュファイルはどこにありますか?

  • をチェック
  • .qmlcファイル
  • 追加QML_DISABLE_DISK_CACHEには、ビルドフォルダを削除して手動でプロジェクトをClenedのQt Creatorを
  • を通じてプロジェクトをクリーン:私がこれまでとってきた

    手順。プロファイル

  • Ran qmake再構築前

今私はすべてのアイデアがありません。 Qt Creator/qmakeがキャッシュファイルを「隠す」ことができる他の場所はありますか?

Style.qml:

users\yourUser\AppData\Local\yourApp\cache\qmlcache:窓を仮定

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

、キャッシュがでなければなりません。

あなたはQMLエンジンはキャッシングの問題に対処しますインスタンス化する前に私は実際discoveredは、main.cppqputenv("QML_DISABLE_DISK_CACHE", "1");を経由してキャッシュを無効に知らbugは、あります。

+0

あなたの答えのために、バグを文書化してくれてありがとう!私には少しばかげているようですが、プロジェクト関連のデータはユーザーフォルダに保存する必要があります。 –

+0

これはウィンドウの仕組みです。プラットフォームに依存します。標準のシステムパスなど。 – dtech

関連する問題