「QMLの基礎 - ダイアログ」の版間の差分

提供:MochiuWiki : SUSE, EC, PCB
ナビゲーションに移動 検索に移動
(ページの作成:「== 概要 == <br><br> == ディレクトリ選択ダイアログ == ==== FolderDialog ==== <code>FolderDialog</code>は、ネイティブプラットフォームのデ…」)
 
119行目: 119行目:
</center>
</center>
<br>
<br>
==== ファイル選択ダイアログ ====
== ファイル選択ダイアログ ==


<br><br>
<br><br>

2021年10月21日 (木) 00:27時点における版

概要



ディレクトリ選択ダイアログ

FolderDialog

FolderDialogは、ネイティブプラットフォームのディレクトリ選択ダイアログのためのQML APIを提供する。

※注意
Qt.labs Platformモジュールのアイテムは、将来のバージョンでの互換性が保証されていない。

ディレクトリ選択ダイアログを表示するには、FolderDialogの定義やプロパティを記述して、openメソッドを呼び出す。


currentFolderプロパティは、ダイアログ内で現在選択されているディレクトリのURLが設定される。
folderプロパティは、ダイアログの選択ボタンにより選択された後にのみ設定される。

FolderDialogの使用手順を以下に示す。
Qt Labs Platformモジュールは、ネイティブな実装が利用できないプラットフォーム上のフォールバックとしてQt Widgetsを使用している。
したがって、Qt Labs Platformモジュールのアイテムを使用する場合、
QtWidgetsライブラリをリンクして、QGuiApplicationクラスの代わりにQApplicationクラスを使用する必要がある。

まず、QtWidgetsライブラリをリンクするには、.proファイルに以下の設定を追記する。

# .proファイル

QT += 〜 widgets


main関数において、QGuiApplicationクラスの代わりにQApplicationクラスのインスタンスを生成する。

 // main.cppファイル
 
 #include <QApplication>
 //#include <QGUIApplication>
 #include <QQmlApplicationEngine>
 
 // ...略
 
 int main(int argc, char *argv[])
 {
 #if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
    //QApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
    QApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
 #endif
 
    QApplication app(argc, argv);
    QQmlApplicationEngine engine;
 
    QObject::connect(&engine, &QQmlApplicationEngine::objectCreated, &app,
                     [url](QObject *obj, const QUrl &objUrl)
                     {
                        if (!obj && url == objUrl)
                        {
                           QCoreApplication::exit(-1);
                        }
                     }, Qt::QueuedConnection);
 
    engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
 
    return app.exec();
 }


FileDialogStandardPathsも参照すること。

FileDialogのプロパティを以下に示す。

  • acceptLabel
    値 : string型 (既定値 : 空の文字列)

    ダイアログの選択ボタンに表示されるラベルテキストを設定する。
    空の文字列を設定すると、プラットフォームの標準のラベルテキスト(Open)が使用される。

    rejectLabelプロパティも参照すること。

  • rejectLabel
    値 : string (既定値 : 空の文字列)

    ダイアログのキャンセルボタンに表示されるラベルテキストを設定する。
    空の文字列を設定すると、プラットフォームの標準のラベルテキスト(Cancel)が使用される。

    acceptLabelプロパティも参照すること。

  • currentFolder
    値 : url型 (既定値 : なし)

    ダイアログで現在選択されているフォルダを設定する。
    folderプロパティとは異なり、currentFolderプロパティは、ダイアログ内でディレクトリを選択している間、最終的な選択がなされる前でも更新される。

    folderプロパティも参照すること。

  • folder
    値 : url型 (既定値 : なし)

    最終的に選択されたディレクトリのURLが設定される。
    currentFolderプロパティとは異なり、folderプロパティはダイアログでディレクトリを選択している間は更新されず、最終的な選択が行われた後にのみ更新される。
    つまり、Openボタンを押下した場合、または、acceptedシグナルを処理して最終選択をした場合のみである。

    currentFolderプロパティおよびacceptedメソッドも参照すること。

  • options
    値 : enumlation型 (既定値 : なし)

    ダイアログの外観に影響を与える様々なオプションを設定する。
    既定値では、全てのオプションが無効になっている。
    optionsプロパティは、ダイアログを表示する前に設定する必要がある。
    ダイアログが表示されている間に設定を変更した場合、ダイアログに影響を与えることは保証されていない。

    使用可能なoptionsプロパティの値を、以下に示す。
定数 説明
FolderDialog.ShowDirsOnly ディレクトリのみを表示する。
既定値では、フォルダとディレクトリの両方を表示する。
FolderDialog.DontResolveSymlinks シンボリックリンクを解決しない。
既定値では、シンボリックリンクを解決する。
FolderDialog.ReadOnly ダイアログ内でディレクトリの作成を許可しない。


ファイル選択ダイアログ