📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)
| (同じ利用者による、間の2版が非表示) | |||
| 1行目: | 1行目: | ||
== 概要 == | == 概要 == | ||
<code>Settings</code> | <code>Settings</code>タイプは、アプリケーションの永続的な設定データを保存、読み込み、変更するためのコンポーネントである。<br> | ||
これは、Qtのクラスである<code>QSettings</code>クラスのQML版である。<br> | |||
<br> | <br> | ||
主な機能を以下に示す。<br> | 主な機能を以下に示す。<br> | ||
* 設定値の保存と読み込み | * 設定値の保存と読み込み (キーと値のペアで設定を保存と読み込み) | ||
* 異なるタイプの値 (文字列、数値、ブール値等) の扱い | * 異なるタイプの値 (文字列、数値、ブール値等) の扱い | ||
* 異なる設定グループの管理 | |||
* 設定の自動保存 | * 設定の自動保存 | ||
* 設定ファイルの場所の自動管理 | * 設定ファイルの場所の自動管理 | ||
* 異なるプラットフォーム間での一貫した動作 | |||
<br> | <br> | ||
<code>Settings</code>タイプの利用例を、以下に示す。<br> | <code>Settings</code>タイプの利用例を、以下に示す。<br> | ||
| 69行目: | 72行目: | ||
} | } | ||
</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行目: | 125行目: | ||
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行目: | 147行目: | ||
Switch { | Switch { | ||
id: darkSwitch | |||
text: "Dark Mode" | text: "Dark Mode" | ||
checked: appSettings.darkMode | checked: appSettings.darkMode | ||
| 122行目: | 154行目: | ||
SpinBox { | SpinBox { | ||
id: fontSpin | |||
from: 8 | from: 8 | ||
to: 24 | to: 24 | ||
| 129行目: | 162行目: | ||
Button { | Button { | ||
text: " | 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: { | ||
appSettings.clear() | |||
console.log("All settings cleared") | |||
console.log(" | |||
} | } | ||
} | } | ||