QFileDialog Class

QFileDialogクラスは、ユーザーがファイルやディレクトリを選択するためのダイアログを提供します。詳細...

Header: #include <QFileDialog>
CMake: find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake: QT += widgets
Inherits: QDialog

パブリックタイプ

enum AcceptMode { AcceptOpen, AcceptSave }
enum DialogLabel { LookIn, FileName, FileType, Accept, Reject }
enum FileMode { AnyFile, ExistingFile, Directory, ExistingFiles }
enum Option { ShowDirsOnly, DontResolveSymlinks, DontConfirmOverwrite, DontUseNativeDialog, ReadOnly, …, DontUseCustomDirectoryIcons }
flags Options
enum ViewMode { Detail, List }

プロパティ

パブリック関数

QFileDialog(QWidget *parent, Qt::WindowFlags flags)
QFileDialog(QWidget *parent = nullptr, const QString &caption = QString(), const QString &directory = QString(), const QString &filter = QString())
virtual ~QFileDialog()
QFileDialog::AcceptMode acceptMode() const
QString defaultSuffix() const
QDir directory() const
QUrl directoryUrl() const
QFileDialog::FileMode fileMode() const
QDir::Filters filter() const
QStringList history() const
QAbstractFileIconProvider *iconProvider() const
QAbstractItemDelegate *itemDelegate() const
QString labelText(QFileDialog::DialogLabel label) const
QStringList mimeTypeFilters() const
QStringList nameFilters() const
void open(QObject *receiver, const char *member)
QFileDialog::Options options() const
QAbstractProxyModel *proxyModel() const
bool restoreState(const QByteArray &state)
QByteArray saveState() const
void selectFile(const QString &filename)
void selectMimeTypeFilter(const QString &filter)
void selectNameFilter(const QString &filter)
void selectUrl(const QUrl &url)
QStringList selectedFiles() const
QString selectedMimeTypeFilter() const
QString selectedNameFilter() const
QList<QUrl> selectedUrls() const
void setAcceptMode(QFileDialog::AcceptMode mode)
void setDefaultSuffix(const QString &suffix)
void setDirectory(const QString &directory)
void setDirectory(const QDir &directory)
void setDirectoryUrl(const QUrl &directory)
void setFileMode(QFileDialog::FileMode mode)
void setFilter(QDir::Filters filters)
void setHistory(const QStringList &paths)
void setIconProvider(QAbstractFileIconProvider *provider)
void setItemDelegate(QAbstractItemDelegate *delegate)
void setLabelText(QFileDialog::DialogLabel label, const QString &text)
void setMimeTypeFilters(const QStringList &filters)
void setNameFilter(const QString &filter)
void setNameFilters(const QStringList &filters)
void setOption(QFileDialog::Option option, bool on = true)
void setOptions(QFileDialog::Options options)
void setProxyModel(QAbstractProxyModel *proxyModel)
void setSidebarUrls(const QList<QUrl> &urls)
void setSupportedSchemes(const QStringList &schemes)
void setViewMode(QFileDialog::ViewMode mode)
QList<QUrl> sidebarUrls() const
QStringList supportedSchemes() const
bool testOption(QFileDialog::Option option) const
QFileDialog::ViewMode viewMode() const

再実装パブリック関数

virtual void setVisible(bool visible) override

シグナル

void currentChanged(const QString &path)
void currentUrlChanged(const QUrl &url)
void directoryEntered(const QString &directory)
void directoryUrlEntered(const QUrl &directory)
void fileSelected(const QString &file)
void filesSelected(const QStringList &selected)
void filterSelected(const QString &filter)
void urlSelected(const QUrl &url)
void urlsSelected(const QList<QUrl> &urls)

静的パブリックメンバ

QString getExistingDirectory(QWidget *parent = nullptr, const QString &caption = QString(), const QString &dir = QString(), QFileDialog::Options options = ShowDirsOnly)
QUrl getExistingDirectoryUrl(QWidget *parent = nullptr, const QString &caption = QString(), const QUrl &dir = QUrl(), QFileDialog::Options options = ShowDirsOnly, const QStringList &supportedSchemes = QStringList())
void getOpenFileContent(const QString &nameFilter, const std::function<void (const QString &, const QByteArray &)> &fileOpenCompleted, QWidget *parent = nullptr)
QString getOpenFileName(QWidget *parent = nullptr, const QString &caption = QString(), const QString &dir = QString(), const QString &filter = QString(), QString *selectedFilter = nullptr, QFileDialog::Options options = Options())
QStringList getOpenFileNames(QWidget *parent = nullptr, const QString &caption = QString(), const QString &dir = QString(), const QString &filter = QString(), QString *selectedFilter = nullptr, QFileDialog::Options options = Options())
QUrl getOpenFileUrl(QWidget *parent = nullptr, const QString &caption = QString(), const QUrl &dir = QUrl(), const QString &filter = QString(), QString *selectedFilter = nullptr, QFileDialog::Options options = Options(), const QStringList &supportedSchemes = QStringList())
QList<QUrl> getOpenFileUrls(QWidget *parent = nullptr, const QString &caption = QString(), const QUrl &dir = QUrl(), const QString &filter = QString(), QString *selectedFilter = nullptr, QFileDialog::Options options = Options(), const QStringList &supportedSchemes = QStringList())
QString getSaveFileName(QWidget *parent = nullptr, const QString &caption = QString(), const QString &dir = QString(), const QString &filter = QString(), QString *selectedFilter = nullptr, QFileDialog::Options options = Options())
QUrl getSaveFileUrl(QWidget *parent = nullptr, const QString &caption = QString(), const QUrl &dir = QUrl(), const QString &filter = QString(), QString *selectedFilter = nullptr, QFileDialog::Options options = Options(), const QStringList &supportedSchemes = QStringList())
void saveFileContent(const QByteArray &fileContent, const QString &fileNameHint, QWidget *parent = nullptr)

再実装された保護された関数

virtual void accept() override
virtual void changeEvent(QEvent *e) override
virtual void done(int result) override

詳しい説明

QFileDialogクラスは、ユーザがファイルシステムを走査して1つまたは複数のファイルやディレクトリを選択できるようにします。

QFileDialog を作成する最も簡単な方法は、getOpenFileName() のような静的関数を使用することです。

fileName = QFileDialog::getOpenFileName(this,
    tr("Open Image"), "/home/jana", tr("Image Files (*.png *.jpg *.bmp)"));

上記の例では、モーダルな QFileDialog が static 関数を使って作成されています。このダイアログは、最初に "/home/jana" ディレクトリの内容を表示し、文字列 "Image Files (*.png *.jpg *.bmp)" で指定されたパターンに一致するファイルを表示します。ファイルダイアログの親はこれに設定され、ウィンドウタイトルは「画像を開く」に設定される。

複数のフィルターを使いたい場合は、それぞれをセミコロン2つで区切ってください。例えば

"Images (*.png *.xpm *.jpg);;Text files (*.txt);;XML files (*.xml)"

静的関数を使用しなくても、独自のQFileDialogを作成することができます。setFileMode() を呼び出すことで、ユーザーがダイアログで選択しなければならないものを指定することができます:

QFileDialog dialog(this);
dialog.setFileMode(QFileDialog::AnyFile);

上記の例では、ファイル・ダイアログのモードがAnyFile に設定されています。つまり、ユーザーは任意のファイルを選択することができ、存在しないファイルを指定することもできます。このモードは、「名前を付けて保存」ファイルダイアログを作成するのに便利です。ユーザが既存のファイルを選択しなければならない場合はExistingFile を使用し、ディレクトリのみを選択できる場合はDirectory を使用します。モードの完全なリストについては、QFileDialog::FileMode enumを参照してください。

fileMode プロパティには、ダイアログの操作モードが含まれます。これは、ユーザがどのような種類のオブジェクトを選択するかを示します。ダイアログのファイル・フィルタを設定するには、setNameFilter()を使用する。例えば

dialog.setNameFilter(tr("Images (*.png *.xpm *.jpg)"));

"Images (*.png *.xpm *.jpg)"これは、拡張子がpngxpm 、またはjpg のファイルのみが QFileDialog に表示されることを意味します。setNameFilters() を使用すると、複数のフィルタを適用できます。ファイル・ダイアログのデフォルト・フィルタとして指定したフィルタの 1 つを選択するには、selectNameFilter() を使用します。

ファイル・ダイアログには、ListDetail の2つの表示モードがあります。List は、カレント・ディレクトリの内容をファイル名とディレクトリ名のリストとして表示します。Detail もファイル名とディレクトリ名のリストを表示しますが、ファイル・サイズや更新日時などの追加情報が各名称の横に表示されます。setViewMode()でモードを設定する:

dialog.setViewMode(QFileDialog::Detail);

独自のファイルダイアログを作成する際に使用する最後の重要な関数は、selectedFiles() です。

QStringList fileNames;
if (dialog.exec())
    fileNames = dialog.selectedFiles();

上の例では、モーダルファイルダイアログが作成され、表示されています。ユーザーがOKをクリックすると、選択したファイルがfileName に置かれます。

ダイアログの作業ディレクトリはsetDirectory() で設定できます。カレント・ディレクトリの各ファイルは、selectFile() 関数を使用して選択できます。

標準ダイアログの例では、Qt 組み込みの他のダイアログと同様に QFileDialog を使用する方法を示しています。

デフォルトでは、プラットフォーム固有のファイルダイアログがあれば、それを使用します。その場合、ダイアログを構築するために使用されるはずのウィジェットはインスタンス化されないので、layout() やitemDelegate() のような関連するアクセサは null を返します。また、すべてのプラットフォームでファイルダイアログがタイトルバー付きで表示されるわけではないので、キャプションテキストがユーザーに見えない可能性があることに注意してください。DontUseNativeDialog オプションを設定するか、AA_DontUseNativeDialogs アプリケーション属性を設定することで、ネイティブダイアログの代わりにウィジェットベースの実装が使用されるようにすることができます。

QDir,QFileInfo,QFile,QColorDialog,QFontDialog,標準ダイアログの例も参照してください

メンバ型ドキュメント

enum QFileDialog::AcceptMode

定数
QFileDialog::AcceptOpen0
QFileDialog::AcceptSave1

enum QFileDialog::DialogLabel

定数
QFileDialog::LookIn0
QFileDialog::FileName1
QFileDialog::FileType2
QFileDialog::Accept3
QFileDialog::Reject4

enum QFileDialog::FileMode

この列挙型は、ユーザがファイルダイアログで何を選択できるか、つまり、ユーザがOKをクリックした場合にダイアログが何を返すかを示すために使用されます。

定数説明
QFileDialog::AnyFile0存在するかどうかにかかわらず、ファイルの名前。
QFileDialog::ExistingFile1既存のファイル名
QFileDialog::Directory2ディレクトリ名。ファイルとディレクトリの両方が表示される。ただし、Windowsのネイティブ・ファイル・ダイアログは、ディレクトリ・チューザーにファイルを表示することをサポートしていない。
QFileDialog::ExistingFiles30個以上の既存ファイルの名前。

setFileMode()も参照してください

enum QFileDialog::Option
flags QFileDialog::Options

ダイアログの動作に影響を与えるオプション。

定数説明
QFileDialog::ShowDirsOnly0x00000001ディレクトリのみを表示します。デフォルトでは、ファイルとディレクトリの両方が表示されます。
このオプションは、Directory ファイルモードでのみ有効です。
QFileDialog::DontResolveSymlinks0x00000002シンボリックリンクを解決しない。デフォルトでは、シンボリックリンクは解決される。
QFileDialog::DontConfirmOverwrite0x00000004既存のファイルを選択しても確認を求めない。デフォルトでは、確認が要求される。
このオプションは、acceptModeAcceptSave の場合にのみ有効である。さらに、macOSではネイティブファイルダイアログでは使用されません。
QFileDialog::DontUseNativeDialog0x00000008
デフォルトでは、Q_OBJECT マクロを含むQFileDialog のサブクラスを使用しているか、グローバルなAA_DontUseNativeDialogs アプリケーション属性が設定されているか、プラットフォームが必要とするタイプのネイティブダイアログを持っていない場合を除き、ネイティブファイルダイアログが表示されます。
このオプションを有効にするには、ダイアログの他のプロパティを変更する前、またはダイアログを表示する前に、このオプションを設定する必要があります。
QFileDialog::ReadOnly0x00000010モデルが読み取り専用であることを示します。
QFileDialog::HideNameFilterDetails0x00000020ファイル名フィルターの詳細を非表示にするかどうかを指定します。
QFileDialog::DontUseCustomDirectoryIcons0x00000040
いくつかのプラットフォームでは、ユーザーが別のアイコンを設定することができますが、カスタムアイコン検索は、ネットワークやリムーバブルドライブ上で重大なパフォーマンスの問題を引き起こす可能性があります。
これを設定すると、iconProvider()のDontUseCustomDirectoryIcons オプションが有効になります。
この列挙値はQt 5.2で追加されました。

Options 型はQFlags<Option> の typedef です。Option値のORの組み合わせを格納します。

optionstestOptionも参照して ください。

enum QFileDialog::ViewMode

この列挙型は、ファイルダイアログの表示モードを記述します。

定数説明
QFileDialog::Detail0ディレクトリ内の各アイテムのアイコン、名前、詳細を表示します。
QFileDialog::List1ディレクトリ内の各アイテムのアイコンと名前のみを表示します。

setViewMode()も参照

プロパティ Documentation

acceptMode : AcceptMode

このプロパティは、ダイアログの受諾モードを保持する。

動作モードは、ダイアログがファイルを開くのか保存するのかを定義する。

デフォルトでは、このプロパティはAcceptOpen に設定されている。

アクセス関数:

QFileDialog::AcceptMode acceptMode() const
void setAcceptMode(QFileDialog::AcceptMode mode)

AcceptModeも参照してください

defaultSuffix : QString

このプロパティは、ファイル名に追加される文字列を指定します。

このプロパティは、ファイル名にまだ接尾辞がない場合に追加される文字列を指定します。サフィックスは通常、ファイルタイプを示すために使用されます(例えば、"txt "はテキストファイルを示します)。

最初の文字がドット('.')の場合、その文字は削除されます。

アクセス関数:

QString defaultSuffix() const
void setDefaultSuffix(const QString &suffix)

fileMode : FileMode

このプロパティは、ダイアログのファイルモードを保持します。

ファイルモードは、ユーザーがダイアログで選択する項目の数と種類を定義します。

デフォルトでは、このプロパティはAnyFile に設定されています。

この関数は、FileNameAccept DialogLabel のラベルを設定する。setFileMode() を呼び出した後にカスタムテキストを設定することも可能である。

アクセス関数:

QFileDialog::FileMode fileMode() const
void setFileMode(QFileDialog::FileMode mode)

FileModeも参照してください

options : Options

このプロパティは、ダイアログのルック&フィールに影響する様々なオプションを保持します。

デフォルトでは、すべてのオプションは無効になっています。

オプション(特にDontUseNativeDialog )は、ダイアログのプロパティを変更したりダイアログを表示したりする前に設定する必要があります。

ダイアログが表示されているときにオプションを設定しても、ダイアログにすぐに効果があるとは限りません(オプションやプラットフォームによって異なります)。

他のプロパティを変更した後にオプションを設定すると、これらの値が何の影響も及ぼさない可能性があります。

アクセス関数:

QFileDialog::Options options() const
void setOptions(QFileDialog::Options options)

setOption() およびtestOption()も参照

supportedSchemes : QStringList

このプロパティは、ファイルダイアログがナビゲートを許可するURLスキームを保持する。

このプロパティを設定することで、ユーザが選択できるURLの種類を制限することができる。これは、アプリケーションがファイル・コンテンツを取得するためにサポートするプロトコルを宣言する方法です。空のリストは、制限が適用されないことを意味します(デフォルト)。ローカルファイル("file "スキーム)のサポートは暗黙的で、常に有効です。

アクセス関数:

QStringList supportedSchemes() const
void setSupportedSchemes(const QStringList &schemes)

viewMode : ViewMode

このプロパティは、ファイルやディレクトリがダイアログに表示される方法を保持します。

デフォルトでは、Detail モードがファイルとディレクトリに関する情報の表示に使用されます。

アクセス関数:

QFileDialog::ViewMode viewMode() const
void setViewMode(QFileDialog::ViewMode mode)

ViewModeも参照してください

メンバ関数 ドキュメント

QFileDialog::QFileDialog(QWidget *parent, Qt::WindowFlags flags)

与えられたparent とウィジェットflags でファイルダイアログを構築します。

[explicit] QFileDialog::QFileDialog(QWidget *parent = nullptr, const QString &caption = QString(), const QString &directory = QString(), const QString &filter = QString())

指定されたparentcaption でファイルダイアログを構築し、最初に指定されたdirectory の内容を表示します。ディレクトリの内容は、ダイアログに表示される前に、filter で指定されたセミコロンで区切られたフィルタのリストを使用してフィルタリングされます。

[virtual noexcept] QFileDialog::~QFileDialog()

ファイルダイアログを破棄します。

[override virtual protected] void QFileDialog::accept()

再インプリメント:QDialog::accept().

[override virtual protected] void QFileDialog::changeEvent(QEvent *e)

再インプリメント:QWidget::changeEvent(QEvent *event)。

[signal] void QFileDialog::currentChanged(const QString &path)

ローカル操作で現在のファイルが変更されると、このシグナルは新しいファイル名をpath パラメータとして発行されます。

filesSelected()も参照

[signal] void QFileDialog::currentUrlChanged(const QUrl &url)

現在のファイルが変更されると、このシグナルは新しいファイルの URL をurl パラメータとして発行されます。

urlsSelected()も参照

QDir QFileDialog::directory() const

現在ダイアログに表示されているディレクトリを返します。

setDirectory()も参照

[signal] void QFileDialog::directoryEntered(const QString &directory)

このシグナルは、ユーザがdirectory を入力したときに、ローカル操作のために発せられます。

QUrl QFileDialog::directoryUrl() const

現在ダイアログに表示されているディレクトリのURLを返します。

setDirectoryUrl()も参照して ください。

[signal] void QFileDialog::directoryUrlEntered(const QUrl &directory)

このシグナルは、ユーザがdirectory を入力したときに発せられます。

[override virtual protected] void QFileDialog::done(int result)

再インプリメント:QDialog::done(int r)を参照してください。

[signal] void QFileDialog::fileSelected(const QString &file)

ローカル操作で選択が変更され、ダイアログが受け入れられたとき、選択された(空かもしれない)file と共にこのシグナルが発せられる。

currentChanged() およびQDialog::Acceptedも参照してください

[signal] void QFileDialog::filesSelected(const QStringList &selected)

ローカル操作の選択が変更され、ダイアログが受け入れられたとき、このシグナルはselected ファイルのリスト(空の場合もある)とともに発せられます。

currentChanged() およびQDialog::Accepted参照

QDir::Filters QFileDialog::filter() const

ファイルを表示するときに使用するフィルタを返します。

setFilter()も参照

[signal] void QFileDialog::filterSelected(const QString &filter)

このシグナルは、ユーザがfilter を選択したときに発せられる。

[static] QString QFileDialog::getExistingDirectory(QWidget *parent = nullptr, const QString &caption = QString(), const QString &dir = QString(), QFileDialog::Options options = ShowDirsOnly)

これは、ユーザが選択した既存のディレクトリを返す便利な静的関数です。

QString dir = QFileDialog::getExistingDirectory(this, tr("Open Directory"),
                                                "/home",
                                                QFileDialog::ShowDirsOnly
                                                | QFileDialog::DontResolveSymlinks);

この関数は、与えられたparent ウィジェットでモーダルファイルダイアログを作成します。parentnullptr でない場合、ダイアログは親ウィジェットの中央に表示されます。

ダイアログの作業ディレクトリはdir に設定され、キャプションはcaption に設定されます。 このどちらかを空文字列にすることもできますが、その場合はそれぞれカレントディレクトリとデフォルトのキャプションが使用されます。

options 引数は、ダイアログの実行方法に関するさまざまなオプションを保持します。渡せるフラグの詳細については、QFileDialog::Option enumを参照してください。ネイティブのファイルダイアログを保証するには、ShowDirsOnly を設定する必要があります。

Windows および macOS では、この静的関数はQFileDialog ではなく、ネイティブのファイルダイアログを使用します。 しかし、Windows ネイティブのファイルダイアログは、ディレクトリ選択でのファイル表示をサポートしていません。QFileDialog を使用してファイルを表示するには、DontUseNativeDialog オプションを渡すか、グローバルなアプリケーション属性 ¦Qt::}{AA_DontUseNativeDialogs} を設定する必要があります。

macOSネイティブ・ファイル・ダイアログはタイトル・バーを表示しないことに注意してください。

Unix/X11では、ファイル・ダイアログの通常の動作は、シンボリックリンクを解決してそれに従うことです。たとえば、/usr/tmp/var/tmp へのシンボリックリンクである場合、/usr/tmp を入力すると、ファイル・ダイアログは/var/tmp に変わります。optionsDontResolveSymlinks を含む場合、ファイルダイアログはシンボリックリンクを通常のディレクトリとして扱います。

Windowsでは、ダイアログはQTimersをディスパッチしないブロッキングモーダルイベントループを回し、parentnullptr でない場合、ダイアログを親のタイトルバーのすぐ下に配置します。

警告 ダイアログの実行中にparent を削除しないでください。これを行いたい場合は、QFileDialog コンストラクタのいずれかを使用してダイアログを作成する必要があります。

getOpenFileName(),getOpenFileNames(),getSaveFileName()も参照してください

[static] QUrl QFileDialog::getExistingDirectoryUrl(QWidget *parent = nullptr, const QString &caption = QString(), const QUrl &dir = QUrl(), QFileDialog::Options options = ShowDirsOnly, const QStringList &supportedSchemes = QStringList())

これは、ユーザが選択した既存のディレクトリを返す便利な静的関数です。ユーザがキャンセルを押すと、空のURLを返します。

この関数は、QFileDialog::getExistingDirectory() と同様に使用される。特に、parentcaptiondiroptions は、まったく同じように使用されます。

QFileDialog::getExistingDirectory()との主な違いは、ユーザーがリモート・ディレクトリを選択できることである。そのため、戻り値の型とdir の型はQUrl となっている。

引数supportedSchemes は、ユーザーが選択できるURLのタイプを制限することができる。これは、アプリケーションがファイル・コンテンツを取得するためにサポートするプロトコルを宣言する方法です。空のリストは、制限が適用されないことを意味します(デフォルト)。ローカルファイル("file "スキーム)のサポートは暗黙的で、常に有効です。

可能であれば、この静的関数はQFileDialog ではなく、ネイティブのファイルダイアログを使用します。 リモートファイルの選択をサポートしていないプラットフォームでは、Qt はローカルファイルのみを選択することができます。

getExistingDirectory(),getOpenFileUrl(),getOpenFileUrls(),getSaveFileUrl()も参照してください

[static] void QFileDialog::getOpenFileContent(const QString &nameFilter, const std::function<void (const QString &, const QByteArray &)> &fileOpenCompleted, QWidget *parent = nullptr)

これは、ユーザが選択したファイルの内容を返す便利な静的関数です。

Web サンドボックスでファイルアクセスが制限されている場合、Qt for WebAssembly でローカルファイルにアクセスするにはこの関数を使用します。この関数の実装により、ブラウザにネイティブファイルダイアログを表示し、nameFilter パラメータに基づいてファイルを選択することができます。

parent は Qt for WebAssembly では無視されます。他のプラットフォームでは を渡して、ポップアップを他のウィジェットの子にします。プラットフォームがネイティブのファイルダイアログをサポートしていない場合、この関数は にフォールバックします。parent QFileDialog

この関数は非同期で、すぐに戻ります。fileOpenCompleted コールバックは、ファイルが選択され、その内容がメモリに読み込まれたときに呼び出されます。

auto fileContentReady = [](const QString &fileName, const QByteArray &fileContent) {
    if (fileName.isEmpty()) {
        // No file was selected
    } else {
        // Use fileName and fileContent
    }
};
QFileDialog::getOpenFileContent("Images (*.png *.xpm *.jpg)",  fileContentReady);

[static] QString QFileDialog::getOpenFileName(QWidget *parent = nullptr, const QString &caption = QString(), const QString &dir = QString(), const QString &filter = QString(), QString *selectedFilter = nullptr, QFileDialog::Options options = Options())

これは、ユーザーが選択した既存のファイルを返す便利な静的関数です。ユーザーがキャンセルを押した場合は、NULL文字列を返します。

QString fileName = QFileDialog::getOpenFileName(this, tr("Open File"),
                                                "/home",
                                                tr("Images (*.png *.xpm *.jpg)"));

この関数は、与えられたparent ウィジェットでモーダルファイルダイアログを作成します。parentnullptr でない場合、ダイアログは親ウィジェットの中央に表示されます。

ファイルダイアログの作業ディレクトリは、dir に設定されます。dir にファイル名が含まれている場合、そのファイルが選択されます。指定されたfilter に一致するファイルだけが表示されます。選択されたフィルタはselectedFilter に設定されます。パラメータdir,selectedFilter,filter は空文字列でもかまいません。複数のフィルターが必要な場合は、';'などで区切ります:

"Images (*.png *.xpm *.jpg);;Text files (*.txt);;XML files (*.xml)"

options 引数は、ダイアログの実行方法に関するさまざまなオプションを保持します。渡せるフラグの詳細については、QFileDialog::Option enumを参照してください。

ダイアログのキャプションはcaption に設定されます。caption が指定されない場合、デフォルトのキャプションが使用されます。

WindowsおよびmacOSでは、この静的関数はネイティブのファイルダイアログを使用し、QFileDialog 。macOSネイティブのファイルダイアログはタイトルバーを表示しないことに注意してください。

Windowsでは、ダイアログはQTimersをディスパッチしないブロッキングモーダルイベントループを回し、parentnullptr でない場合、ダイアログを親のタイトルバーのすぐ下に配置します。

Unix/X11では、ファイルダイアログの通常の動作は、シンボリックリンクを解決し、それに従うことです。たとえば、/usr/tmp/var/tmp へのシンボリックリンクである場合、/usr/tmp を入力すると、ファイルダイアログは/var/tmp に変わります。optionsDontResolveSymlinks を含んでいる場合、ファイルダイアログはシンボリックリンクを通常のディレクトリとして扱います。

警告 ダイアログの実行中にparent を削除しないでください。これを行いたい場合は、QFileDialog コンストラクタのいずれかを使用してダイアログを作成する必要があります。

getOpenFileNames()、getSaveFileName()、getExistingDirectory()も参照してください

[static] QStringList QFileDialog::getOpenFileNames(QWidget *parent = nullptr, const QString &caption = QString(), const QString &dir = QString(), const QString &filter = QString(), QString *selectedFilter = nullptr, QFileDialog::Options options = Options())

これは便利な静的関数で、ユーザが選択した1つ以上の既存ファイルを返します。

QStringList files = QFileDialog::getOpenFileNames(
                        this,
                        "Select one or more files to open",
                        "/home",
                        "Images (*.png *.xpm *.jpg)");

この関数は、与えられたparent ウィジェットでモーダルファイルダイアログを作成します。parentnullptr でない場合、ダイアログは親ウィジェットの中央に表示されます。

ファイルダイアログの作業ディレクトリはdir に設定されます。dir にファイル名が含まれている場合、そのファイルが選択されます。フィルタがfilter に設定され、フィルタに一致するファイルだけが表示されます。選択されたフィルターはselectedFilter に設定される。 パラメーターdirselectedFilterfilter には空の文字列を指定できる。複数のフィルターが必要な場合は、';;'などで区切ってください:

"Images (*.png *.xpm *.jpg);;Text files (*.txt);;XML files (*.xml)"

ダイアログのキャプションはcaption に設定されます。caption が指定されない場合、デフォルトのキャプションが使用されます。

WindowsとmacOSでは、この静的関数はネイティブのファイルダイアログを使用し、QFileDialog 。macOSネイティブのファイルダイアログはタイトルバーを表示しないことに注意してください。

Windowsでは、ダイアログはQTimersをディスパッチしないブロッキングモーダルイベントループを回し、parentnullptr でない場合、ダイアログを親のタイトルバーのすぐ下に配置します。

Unix/X11では、ファイルダイアログの通常の動作は、シンボリックリンクを解決し、それに従うことです。たとえば、/usr/tmp/var/tmp へのシンボリックリンクである場合、/usr/tmp を入力すると、ファイルダイアログは/var/tmp に変わります。引数options は、ダイアログの実行方法に関するさまざまなオプションを保持します。渡すことができるフラグの詳細については、QFileDialog::Option 列挙型を参照してください。

警告 ダイアログの実行中にparent を削除しないでください。これを行いたい場合は、QFileDialog コンストラクタのいずれかを使用してダイアログを作成する必要があります。

getOpenFileName()、getSaveFileName()、getExistingDirectory()も参照してください

[static] QUrl QFileDialog::getOpenFileUrl(QWidget *parent = nullptr, const QString &caption = QString(), const QUrl &dir = QUrl(), const QString &filter = QString(), QString *selectedFilter = nullptr, QFileDialog::Options options = Options(), const QStringList &supportedSchemes = QStringList())

これは、ユーザーが選択した既存のファイルを返す便利な静的関数です。ユーザーがキャンセルを押した場合は、空のurlを返します。

この関数は、QFileDialog::getOpenFileName ()と同様に使用される。特に、parentcaptiondirfilterselectedFilteroptions は、まったく同じように使用される。

QFileDialog::getOpenFileName() との主な違いは、ユーザーがリモート・ファイルを選択できることである。そのため、戻り値の型とdir の型はQUrl となる。

引数supportedSchemes は、ユーザーが選択できるURLのタイプを制限することができます。これは、アプリケーションがファイル・コンテンツを取得するためにサポートするプロトコルを宣言する方法です。空のリストは、制限が適用されないことを意味します(デフォルト)。ローカルファイル("file "スキーム)のサポートは暗黙的で、常に有効です。

可能であれば、この静的関数はQFileDialog ではなく、ネイティブのファイルダイアログを使用します。 リモートファイルの選択をサポートしていないプラットフォームでは、Qt はローカルファイルのみを選択できるようにします。

getOpenFileName(),getOpenFileUrls(),getSaveFileUrl(),getExistingDirectoryUrl()も参照してください

[static] QList<QUrl> QFileDialog::getOpenFileUrls(QWidget *parent = nullptr, const QString &caption = QString(), const QUrl &dir = QUrl(), const QString &filter = QString(), QString *selectedFilter = nullptr, QFileDialog::Options options = Options(), const QStringList &supportedSchemes = QStringList())

これは便利な静的関数で、ユーザーが選択した1つ以上の既存ファイルを返します。ユーザがキャンセルを押すと、空のリストを返します。

この関数は、QFileDialog::getOpenFileNames ()と同様に使用される。特に、parentcaptiondirfilterselectedFilteroptions は、まったく同じように使用される。

QFileDialog::getOpenFileNames() との主な違いは、ユーザーがリモート・ファイルを選択できることである。そのため、dir の戻り値と型は、それぞれQList<QUrl> とQUrl となっている。

引数supportedSchemes は、ユーザーが選択できるURLのタイプを制限することができます。これは、アプリケーションがファイルのコンテンツを取得するためにサポートするプロトコルを宣言する方法です。空のリストは、制限が適用されないことを意味します(デフォルト)。ローカルファイル("file "スキーム)のサポートは暗黙的で、常に有効です。

可能であれば、この静的関数はQFileDialog ではなく、ネイティブのファイルダイアログを使用します。 リモートファイルの選択をサポートしていないプラットフォームでは、Qt はローカルファイルのみを選択できるようにします。

getOpenFileNames(),getOpenFileUrl(),getSaveFileUrl(),getExistingDirectoryUrl()も参照してください

[static] QString QFileDialog::getSaveFileName(QWidget *parent = nullptr, const QString &caption = QString(), const QString &dir = QString(), const QString &filter = QString(), QString *selectedFilter = nullptr, QFileDialog::Options options = Options())

これは、ユーザーが選択したファイル名を返す便利な静的関数です。ファイルは存在する必要はありません。

これは、与えられたparent ウィジェットでモーダルファイルダイアログを作成します。parentnullptr でない場合、ダイアログは親ウィジェットの中央に表示されます。

QString fileName = QFileDialog::getSaveFileName(this, tr("Save File"),
                           "/home/jana/untitled.png",
                           tr("Images (*.png *.xpm *.jpg)"));

ファイルダイアログの作業ディレクトリは、dir に設定されます。dir にファイル名が含まれている場合、そのファイルが選択されます。filter に一致するファイルだけが表示されます。選択されたフィルターは、selectedFilter に設定されます。 パラメーターdirselectedFilterfilter は、空の文字列でもかまいません。複数のフィルターは ';;' で区切られます。例えば

"Images (*.png *.xpm *.jpg);;Text files (*.txt);;XML files (*.xml)"

引数options は、ダイアログの実行方法に関するさまざまなオプションを保持します。 渡すことができるフラグの詳細については、QFileDialog::Option 列挙型を参照してください。

デフォルトのフィルターは、selectedFilter を希望の値に設定することで選択できます。

ダイアログのキャプションはcaption に設定されます。caption が指定されない場合、デフォルトのキャプションが使用されます。

Windows および macOS では、この静的関数はQFileDialog ではなく、ネイティブのファイルダイアログを使用します。

Windowsでは、ダイアログはQTimerをディスパッチしないブロッキングモーダルイベントループを回し、parentnullptr でない場合、ダイアログを親のタイトルバーのすぐ下に配置します。ネイティブのファイルダイアログを持つmacOSでは、filter引数は無視されます。

Unix/X11では、ファイルダイアログの通常の動作は、シンボリックリンクを解決し、それに従います。たとえば、/usr/tmp/var/tmp へのシンボリックリンクである場合、/usr/tmp を入力すると、ファイル・ダイアログは/var/tmp に変わります。optionsDontResolveSymlinks を含んでいる場合、ファイルダイアログはシンボリックリンクを通常のディレクトリとして扱います。

警告 ダイアログの実行中にparent を削除しないでください。これを行いたい場合は、QFileDialog コンストラクタのいずれかを使用してダイアログを作成する必要があります。

getOpenFileName()、getOpenFileNames()、getExistingDirectory()も参照してください

[static] QUrl QFileDialog::getSaveFileUrl(QWidget *parent = nullptr, const QString &caption = QString(), const QUrl &dir = QUrl(), const QString &filter = QString(), QString *selectedFilter = nullptr, QFileDialog::Options options = Options(), const QStringList &supportedSchemes = QStringList())

これは、ユーザが選択したファイルを返す便利な静的関数です。ファイルは存在する必要はありません。ユーザがキャンセルを押すと、空のURLを返します。

この関数は、QFileDialog::getSaveFileName() と同様に使用される。特に、parentcaptiondirfilterselectedFilteroptions は、まったく同じように使用される。

QFileDialog::getSaveFileName() との主な違いは、ユーザーがリモート・ファイルを選択できることである。そのため、戻り値の型とdir の型はQUrl となる。

引数supportedSchemes は、ユーザーが選択できるURLのタイプを制限することができます。これは、アプリケーションがファイル・コンテンツを保存するためにサポートするプロトコルを宣言するための方法です。空のリストは、制限が適用されないことを意味します(デフォルト)。ローカルファイル("file "スキーム)のサポートは暗黙的で、常に有効です。

可能であれば、この静的関数はQFileDialog ではなく、ネイティブのファイルダイアログを使用します。 リモートファイルの選択をサポートしていないプラットフォームでは、Qt はローカルファイルのみを選択できるようにします。

getSaveFileName(),getOpenFileUrl(),getOpenFileUrls(),getExistingDirectoryUrl()も参照してください

QStringList QFileDialog::history() const

filedialog の閲覧履歴をパスのリストとして返します。

setHistory() も参照

QAbstractFileIconProvider *QFileDialog::iconProvider() const

filedialog が使用するアイコン・プロバイダを返します。

setIconProvider()も参照して ください。

QAbstractItemDelegate *QFileDialog::itemDelegate() const

filedialogのビューのアイテムをレンダリングするために使用されるアイテムデリゲートを返します。

setItemDelegate()も参照して ください。

QString QFileDialog::labelText(QFileDialog::DialogLabel label) const

指定されたlabel の filedialog に表示されるテキストを返します。

setLabelText() も参照して ください。

QStringList QFileDialog::mimeTypeFilters() const

このファイルダイアログで動作中の MIME タイプフィルタを返します。

setMimeTypeFilters() も参照して ください。

QStringList QFileDialog::nameFilters() const

このファイルダイアログで動作中のファイルタイプフィルタを返します。

setNameFilters()も参照

void QFileDialog::open(QObject *receiver, const char *member)

この関数はダイアログを表示し、receivermember で指定されたスロットを、選択の変更を通知するシグナルに接続する。fileModeExistingFiles の場合、これはfilesSelected() シグナルとなり、そうでない場合はfileSelected() シグナルとなる。

このシグナルは、ダイアログが閉じられるとスロットから切り離されます。

QAbstractProxyModel *QFileDialog::proxyModel() const

ファイルダイアログが使用するプロキシモデルを返します。デフォルトでは、プロキシは設定されていません。

setProxyModel()も参照してください

bool QFileDialog::restoreState(const QByteArray &state)

ダイアログのレイアウト、履歴、カレントディレクトリを指定されたstate に戻します。

通常、これはQSettings と組み合わせて、過去のセッションのサイズを復元するために使用されます。

エラーがあればfalse を返します。

[static] void QFileDialog::saveFileContent(const QByteArray &fileContent, const QString &fileNameHint, QWidget *parent = nullptr)

これは便利な静的関数で、ユーザが選択したファイル名と場所を使用して、fileContent をファイルに保存します。fileNameHint を指定することで、ユーザにファイル名を提案することができます。

Web サンドボックスがファイルアクセスを制限している場合、Qt for WebAssembly のローカルファイルにコンテンツを保存するには、この関数を使用します。この関数の実装により、ブラウザにネイティブファイルダイアログを表示し、fileNameHint の引数に基づいて出力ファイルを指定することができます。

parent は Qt for WebAssembly では無視されます。他のプラットフォームでは を渡して、ポップアップを他のウィジェットの子にします。プラットフォームがネイティブのファイルダイアログをサポートしていない場合、この関数は にフォールバックします。parent QFileDialog

この関数は非同期で、すぐに戻ります。

QByteArray imageData; // obtained from e.g. QImage::save()
QFileDialog::saveFileContent(imageData, "myimage.png"); // with filename hint
// OR
QFileDialog::saveFileContent(imageData); // no filename hint

QByteArray QFileDialog::saveState() const

ダイアログのレイアウト、履歴、カレントディレクトリの状態を保存します。

一般的に、これはQSettings と組み合わせて、将来のセッションのためにサイズを記憶するために使用されます。バージョン番号がデータの一部として保存されます。

void QFileDialog::selectFile(const QString &filename)

ファイルダイアログで指定されたfilename を選択します。

selectedFiles()も参照

void QFileDialog::selectMimeTypeFilter(const QString &filter)

現在の MIME タイプを設定しますfilter

void QFileDialog::selectNameFilter(const QString &filter)

現在のファイル・タイプを設定しますfilter 。セミコロンまたはスペースで区切ることにより、filter で複数のフィルタを渡すことができます。

setNameFilter()、setNameFilters() およびselectedNameFilter()も参照

void QFileDialog::selectUrl(const QUrl &url)

ファイルダイアログで指定されたurl を選択します。

注意: ネイティブでないQFileDialog は、ローカルファイルのみをサポートする。

selectedUrls()も参照

QStringList QFileDialog::selectedFiles() const

ダイアログで選択されたファイルの絶対パスを含む文字列のリストを返します。ファイルが選択されていない場合、またはモードがExistingFiles またはExistingFile でない場合、 selectedFiles() はビューポートの現在のパスを含みます。

selectedNameFilter() およびselectFile()も参照

QString QFileDialog::selectedMimeTypeFilter() const

ユーザーがファイルダイアログで選択したファイルの mimetype を返します。

QString QFileDialog::selectedNameFilter() const

ユーザーがファイルダイアログで選択したフィルタを返します。

selectedFiles()も参照してください

QList<QUrl> QFileDialog::selectedUrls() const

ダイアログで選択されたファイルを含む URL のリストを返します。ファイルが選択されていない場合、またはモードがExistingFiles またはExistingFile でない場合、selectedUrls() にはビューポート内の現在のパスが含まれます。

selectedNameFilter() およびselectUrl()も参照

void QFileDialog::setDirectory(const QString &directory)

ファイルダイアログの現在のdirectory を設定します。

注: iOSでは、directoryQStandardPaths::standardLocations(QStandardPaths::PicturesLocation).last() に設定すると、ネイティブの画像ピッカー ダイアログがユーザーのフォトアルバムにアクセスするために使用されます。返されたファイル名は、QFile および関連する API を使用して読み込むことができます。これを有効にするには、プロジェクトファイルのQMAKE_INFO_PLISTに割り当てられたInfo.plistに、NSPhotoLibraryUsageDescription というキーが含まれている必要があります。このキーの詳細については、AppleのInfo.plistのドキュメントを参照してください。この機能は Qt 5.5 で追加されました。

directory()も参照してください

void QFileDialog::setDirectory(const QDir &directory)

これはオーバーロードされた関数です。

void QFileDialog::setDirectoryUrl(const QUrl &directory)

ファイルダイアログの現在のdirectory url を設定します。

注意: 非ネイティブのQFileDialog はローカルファイルのみをサポートしています。

注意: Windowsでは、"Computer "や "Network "のような仮想フォルダの一つを表す URLを渡すことができます。これは、スキームclsid を使ってQUrl を渡し、その後に中括弧を取り除いたCLSID値を続けることで実現できる。例えば、clsid:374DE290-123F-4565-9164-39C4925E467B というURLはダウンロードの場所を示す。可能な値の完全なリストについては、KNOWNFOLDERIDに関するMSDNのドキュメントを参照してください。この機能はQt 5.5で追加されました。

directoryUrl() およびQUuidも参照してください

void QFileDialog::setFilter(QDir::Filters filters)

モデルが使用するフィルタをfilters に設定します。 このフィルタは、表示するファイルの種類を指定するために使用されます。

filter() も参照して ください。

void QFileDialog::setHistory(const QStringList &paths)

filedialog の閲覧履歴に指定されたpaths を含むように設定します。

history() も参照して ください。

void QFileDialog::setIconProvider(QAbstractFileIconProvider *provider)

filedialog が使用するアイコン・プロバイダを指定されたprovider に設定します。

iconProvider() も参照して ください。

void QFileDialog::setItemDelegate(QAbstractItemDelegate *delegate)

ファイルダイアログのビューのアイテムのレンダリングに使用されるアイテムデリゲートを、指定されたdelegate に設定します。

QFileDialogdelegate の所有権を持ちません。

警告 ビュー間でデリゲートの同じインスタンスを共有しないでください。なぜなら、与えられたデリゲートに接続された各ビューがcloseEditor() シグナルを受信し、既に閉じられているエディタにアクセス、変更、または閉じようとするかもしれないからです。

使用されるモデルはQFileSystemModel であることに注意してください。これは、Roles enumによって記述されるカスタムアイテムデータの役割を持っています。カスタムアイコンだけが必要な場合は、QFileIconProvider

itemDelegate()、setIconProvider()、QFileSystemModelも参照して ください。

void QFileDialog::setLabelText(QFileDialog::DialogLabel label, const QString &text)

指定されたlabel の filedialog に表示されるtext を設定します。

labelText()も参照して ください。

void QFileDialog::setMimeTypeFilters(const QStringList &filters)

ファイル・ダイアログで使用するfilters を MIME タイプのリストから設定します。

setNameFilters() の便利メソッド。QMimeType を使用して、各 MIME タイプで定義されているグロブ・パターンと記述から名前フィルタを作成します。

すべてのファイル(*)」フィルターにはapplication/octet-streamを使用する。これは、すべてのファイルの基本MIMEタイプだからである。

setMimeTypeFilters を呼び出すと、以前に設定されていた名前フィルタが上書きされ、nameFilters() の返り値が変更されます。

QStringList mimeTypeFilters({"image/jpeg", // will show "JPEG image (*.jpeg *.jpg *.jpe)
                             "image/png",  // will show "PNG image (*.png)"
                             "application/octet-stream" // will show "All files (*)"
                            });

QFileDialog dialog(this);
dialog.setMimeTypeFilters(mimeTypeFilters);
dialog.exec();

mimeTypeFilters()も参照

void QFileDialog::setNameFilter(const QString &filter)

ファイルダイアログで使用されるフィルタを、指定されたfilter に設定します。

filter に、空白で区切られた 1 つ以上のファイル名ワイルドカード・パターンを含む括弧のペアが含まれている場合、括弧に含まれるテキストのみがフィルタとして使用されます。つまり、これらの呼び出しはすべて等価である:

dialog.setNameFilter("All C++ files (*.cpp *.cc *.C *.cxx *.c++)");
dialog.setNameFilter("*.cpp *.cc *.C *.cxx *.c++");

注: Androidのネイティブファイルダイアログでは、MIMEタイプのみがサポートされているため、指定された名前フィルターに一致するMIMEタイプが使用されます。

setMimeTypeFilters() およびsetNameFilters()も参照

void QFileDialog::setNameFilters(const QStringList &filters)

ファイルダイアログで使用するfilters を設定します。

ファイル拡張子がファイルタイプを決定するという歴史的な仮定は、すべてのオペレーティングシステムで一貫していないため、*.*フィルタは移植性がないことに注意してください。ファイル名にドットがないファイル(例えば、Makefile )を持つことも可能である。Windowsネイティブのファイルダイアログでは、*.*はそのようなファイルにマッチしますが、他のタイプのファイルダイアログではマッチしないかもしれません。そのため、任意のファイルを選択する場合は* を使う方がよい。

const QStringList filters({"Image files (*.png *.xpm *.jpg)",
                           "Text files (*.txt)",
                           "Any files (*)"
                          });
QFileDialog dialog(this);
dialog.setNameFilters(filters);
dialog.exec();

setMimeTypeFilters() は、各ファイルタイプに対して可能なすべての名前フィルタを提供するという利点があります。例えば、JPEG画像には3つの拡張子があります。このようなファイルを開くことができるアプリケーションであれば、image/jpeg MIMEタイプをフィルターとして選択することで、すべてのファイルを開くことができます。

nameFilters()も参照

void QFileDialog::setOption(QFileDialog::Option option, bool on = true)

on が true の場合、指定されたoption を有効にする。そうでない場合、指定されたoption をクリアする。

オプション(特にDontUseNativeDialog オプション)は、ダイアログのプロパティを変更したり、ダイアログを表示したりする前に設定する必要があります。

ダイアログが表示されている間にオプションを設定しても、ダイアログに即座に反映されるとは限りません(オプションやプラットフォームによって異なります)。

他のプロパティを変更した後にオプションを設定すると、これらの値が効果を持たない可能性があります。

options およびtestOption()も参照してください

void QFileDialog::setProxyModel(QAbstractProxyModel *proxyModel)

ビューのモデルを指定されたproxyModel に設定します。例えば、カラムの追加、データのフィルタリング、ドライブの追加などです。

既存のプロキシモデルは削除されますが、削除はされません。ファイルダイアログはproxyModel の所有権を持ちます。

proxyModel()も参照してください

void QFileDialog::setSidebarUrls(const QList<QUrl> &urls)

サイドバーに配置されるurls を設定します。

たとえば、次のようになります:

    QList<QUrl> urls;
    urls << QUrl::fromLocalFile("/Users/foo/Code/qt5")
         << QUrl::fromLocalFile(QStandardPaths::standardLocations(QStandardPaths::MusicLocation).first());

    QFileDialog dialog;
    dialog.setSidebarUrls(urls);
    dialog.setFileMode(QFileDialog::AnyFile);
    if (dialog.exec()) {
        // ...
    }

ファイルダイアログは次のようになります:

sidebarUrls()も参照して ください。

[override virtual] void QFileDialog::setVisible(bool visible)

再インプリメント:QDialog::setVisible(bool visible).

QList<QUrl> QFileDialog::sidebarUrls() const

サイドバーに現在表示されている URL のリストを返します。

setSidebarUrls() も参照して ください。

bool QFileDialog::testOption(QFileDialog::Option option) const

与えられたoption が有効な場合はtrue を返し、そうでない場合は false を返します。

options およびsetOption() も参照

[signal] void QFileDialog::urlSelected(const QUrl &url)

選択が変更され、ダイアログが受け付けられると、このシグナルは選択された(空の)url

currentUrlChanged() およびQDialog::Accepted参照

[signal] void QFileDialog::urlsSelected(const QList<QUrl> &urls)

選択範囲が変更され、ダイアログが受理されると、このシグナルは選択された(空の可能性のある)リストとともに発せられますurls

currentUrlChanged() およびQDialog::Acceptedも参照して ください。

本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。