📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)

120行目: 120行目:
<br>
<br>
== ファイル選択ダイアログ ==
== ファイル選択ダイアログ ==
==== FileDialogコンポーネント ====
まず、必要なモジュールをインポートして、<code>FileDialog</code>コンポーネントを使用して、ファイル選択ダイアログを作成する。<br>
これは、一般的に、アプリケーションのメインウィンドウや特定のコンポーネント内で記述する。<br>
<br>
<code>FileDialog</code>コンポーネントのプロパティを以下に示す。<br>
* <code>title</code>プロパティ
*: ダイアログのタイトルを設定する。
* <code>nameFilters</code>プロパティ
*: 表示するファイルタイプを制限することができる。
* <code>selectedFiles</code>プロパティ
*: 選択されたファイルのパスが配列として格納される。
*: 一般的に、単一ファイル選択の場合は、<u>selectedFiles[0]</u>を使用する。
* <code>fileMode</code>プロパティ
*: 単一ファイル選択または複数ファイル選択を指定できる。
<br>
<code>FileDialog</code>コンポーネントのシグナルハンドラ (スロット) を以下に示す。<br>
* <code>onAccepted</code>ハンドラ
*: ファイルが選択された場合の処理を定義する。
* <code>onRejected</code>ハンドラ
*: ダイアログがキャンセルされた場合の処理を定義する。
<br>
ファイル選択ダイアログを表示する場合は、<code>open</code>メソッドを実行してダイアログを表示する。<br>
<br>
<syntaxhighlight lang="qml">
import QtQuick
import QtQuick.Controls
import QtQuick.Dialogs
// ...略
FileDialog {
    id: fileDialog
    title: "ファイルを選択してください"
    nameFilters: ["テキストファイル (*.txt)", "すべてのファイル (*)"]
    // ファイルを選択した場合
    onAccepted: {
        console.log("選択されたファイル:", fileDialog.selectedFiles)
        selectedFileText.text = "選択されたファイル: " + fileDialog.selectedFiles[0]
    }
    // キャンセルした場合
    onRejected: {
      console.log("ファイル選択がキャンセルされました")
    }
}
Column {
    anchors.centerIn: parent
    spacing: 20
    // ダイアログを表示するためのトリガ (例: ボタン)
    Button {
      text: "ファイルを開く"
      onClicked: fileDialog.open()
    }
    Text {
      id: selectedFileText
      text: "ファイルが選択されていません"
    }
}
</syntaxhighlight>
<br>
<u>※注意</u><br>
<u>Qt 6以降では、<code>QtQuick.Dialogs</code>モジュールを使用する。</u><br>
<u>Qt 5では、<code>Qt.labs.platform</code>モジュールを使用する。</u><br>
<br>
<u>ファイル選択ダイアログの動作は、使用しているプラットフォーム (Windows、MacOS、Linux) により異なる場合がある。</u><br>
<br>
==== QWidgetのファイル選択ダイアログ ====
==== QWidgetのファイル選択ダイアログ ====
QMLからQWidgetのファイル選択ダイアログを使用することもできる。<br>
QMLからQWidgetのファイル選択ダイアログを使用することもできる。<br>