QFileDialog Class

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

ヘッダー #include <QFileDialog>
CMake: find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake: QT += widgets
継承: 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

この列挙型は、ユーザーがファイルダイアログで何を選択できるかを示すために使用される。

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

setFileMode()も参照

enum QFileDialog::Option
flags QFileDialog::Options

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

定数説明
QFileDialog::ShowDirsOnly0x00000001ディレクトリのみを表示する。デフォルトでは、ファイルとディレクトリの両方が表示されます。
This option is only effective in the Directory file mode.
QFileDialog::DontResolveSymlinks0x00000002シンボリックリンクを解決しない。デフォルトでは、シンボリックリンクは解決される。
QFileDialog::DontConfirmOverwrite0x00000004既存のファイルが選択されても確認を求めない。デフォルトでは、確認が要求される。
This option is only effective if acceptMode is AcceptSave). It is furthermore not used on macOS for native file dialogs.
QFileDialog::DontUseNativeDialog0x00000008プラットフォームネイティブのファイルダイアログではなく、Qtが提供するウィジェットベースのものを使用してください。
By default, a native file dialog is shown unless you use a subclass of QFileDialog that contains the Q_OBJECT macro, the global AA_DontUseNativeDialogs application attribute is set, or the platform does not have a native dialog of the type that you require.
オプションを有効にするには、ダイアログの他のプロパティを変更する前、またはダイアログを表示する前に設定する必要があります。
QFileDialog::ReadOnly0x00000010モデルが読み取り専用であることを示します。
QFileDialog::HideNameFilterDetails0x00000020ファイル名フィルターの詳細を非表示にするかどうかを指定します。
QFileDialog::DontUseCustomDirectoryIcons0x00000040常にデフォルトのディレクトリアイコンを使用する。
いくつかのプラットフォームでは、ユーザーが別のアイコンを設定することができますが、カスタムアイコン検索は、ネットワークやリムーバブルドライブ上で重大なパフォーマンスの問題を引き起こす可能性があります。
Setting this will enable the DontUseCustomDirectoryIcons option in iconProvider().
この列挙値は Qt 5.2 で追加されました。

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

optionstestOptionも参照してください

enum QFileDialog::ViewMode

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

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

setViewMode()も参照

プロパティの説明

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 オプションを渡 すか、グローバルなアプリケーション属性を設定する必要があります。

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

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

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

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 を含む場合、ファイルダイアログはシンボリックリンクを通常のディレクトリとして扱います。

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 列挙型を参照してください。

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 を含む場合、ファイルダイアログはシンボリックリンクを通常のディレクトリとして扱います。

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 "のような仮想フォルダの1つを表す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 が真であれば、与えられた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も参照してください

© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.