「QMLのコントロール - Settings」の版間の差分

ナビゲーションに移動 検索に移動
69行目: 69行目:
  }
  }
  </syntaxhighlight>
  </syntaxhighlight>
<br><br>
== Settingsタイプの特徴と使用方法 ==
<code>Settings</code>タイプの基本的な機能を、以下に示す。<br>
* キーと値のペアとして設定を保存
* 異なるプラットフォームに適した方法で設定を永続化 (例: Windowsではレジストリ、Unix系ではINIファイル)
* 階層的な設定構造をサポート
<br>
<code>Settings</code>タイプの主要なプロパティを、以下に示す。<br>
* category
*: 設定のカテゴリを指定
* fileName
*: 設定ファイルの名前とパスを指定
<br>
<code>Settings</code>タイプの主要なメソッドを、以下に示す。<br>
* setValue(key, value)
*: 指定したキーに値を設定する。
* value(key, defaultValue)
*: 指定したキーの値を取得する。 (デフォルト値も指定可能)
* contains(key)
*: 指定したキーが存在するかどうかを確認する。
* clear()
*: 全ての設定をクリアする。
<br><br>
<br><br>


99行目: 122行目:
     Settings {
     Settings {
       id: appSettings
       id: appSettings
      category: "MyApp"
      // Linuxでは、~/.config/<組織名>/<アプリケーション名>/mysettings.iniに保存される
      fileName: "mysettings.ini"
       property string userName: ""
       property string userName: ""
       property bool darkMode: false
       property bool darkMode: false
116行目: 144行目:
   
   
       Switch {
       Switch {
          id: darkSwitch
           text: "Dark Mode"
           text: "Dark Mode"
           checked: appSettings.darkMode
           checked: appSettings.darkMode
122行目: 151行目:
   
   
       SpinBox {
       SpinBox {
          id: fontSpin
           from: 8
           from: 8
           to: 24
           to: 24
129行目: 159行目:
   
   
       Button {
       Button {
           text: "Apply Settings"
           text: "Load Settings"
          onClicked: {
            var savedUsername = appSettings.value("username", "")
            var savedTheme    = appSettings.value("darkMode", false)
            var savedFontSize = appSettings.value("fontSize", 12)
            console.log("Username :", savedUsername)
            console.log("Theme : ", savedTheme)
            console.log("Font Size :", savedFontSize)
          }
      }
      Button {
          text: "Save Settings"
          onClicked: {
            appSettings.setValue("userName", nameInput.text)
            appSettings.setValue("darkMode", darkSwitch.checked)
            appSettings.setValue("fontSize", fontSpin.value)
            console.log("Settings saved")
          }
      }
      Button {
          text: "Clear Settings"
           onClicked: {
           onClicked: {
             console.log("User Name:", appSettings.userName)
             appSettings.clear()
            console.log("Dark Mode:", appSettings.darkMode)
             console.log("All settings cleared")
             console.log("Font Size:", appSettings.fontSize)
            // ここで設定を適用するロジックを実装
           }
           }
       }
       }

案内メニュー