Auf dieser Seite

QFileDialog Class

Stellt ein Dialogfeld bereit, in dem Benutzer Dateien oder Verzeichnisse auswählen können. Mehr...

Überschrift: #include <QFileDialog>
CMake: find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake: QT += widgets
Erbt von: QDialog

Öffentliche Typen

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 }

Eigenschaften

Öffentliche Funktionen

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

Neu implementierte öffentliche Funktionen

virtual void setVisible(bool visible) override

Signale

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)

Statische öffentliche Mitglieder

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)

Neu implementierte geschützte Funktionen

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

Ausführliche Beschreibung

Die Klasse `QFileDialog` ermöglicht es Benutzern, das Dateisystem zu durchsuchen und eine oder mehrere Dateien oder Verzeichnisse auszuwählen.

Datei-Dialogfeld öffnen

QFileDialog wird häufig verwendet, um Benutzer zum Öffnen oder Speichern von Dateien oder zur Auswahl von Verzeichnissen aufzufordern. Am einfachsten lässt sich QFileDialog über seine statischen Hilfsfunktionen nutzen, wie beispielsweise ` getOpenFileName()`.

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

In diesem Beispiel wird mithilfe einer statischen Funktion ein modaler QFileDialog erstellt. Der Dialog zeigt zunächst den Inhalt des Verzeichnisses „ /home/jana “ an und listet Dateien auf, die den Mustern in „ "Image Files (*.png *.jpg *.bmp)" “ entsprechen. Der Fenstertitel lautet „ Open Image “.

Dateifilter

Dateien nach Name oder Erweiterung filtern

Um die angezeigten Dateien nach Namen oder Dateiendung zu filtern, verwenden Sie die Funktionen „ setNameFilter()“ oder „ setNameFilters()“. Es können mehrere Filter angegeben werden, indem Sie diese durch zwei Semikolons (;;) trennen:

QFileDialog dialog(this);
dialog.setNameFilter(tr("Images (*.png *.xpm *.jpg);;Text files (*.txt);;XML files (*.xml)"));
dialog.exec();

Dateien nach MIME-Typ filtern

Um die angezeigten Dateien nach MIME-Typ zu filtern, verwenden Sie die Funktion ` setMimeTypeFilters()`:

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();

Groß-/Kleinschreibung bei Dateifiltern

Je nach Zielplattform kann bei Dateifiltern zwischen Groß- und Kleinschreibung unterschieden werden oder nicht.

Dateimodi

QFileDialog unterstützt mehrere Dateimodi, die festlegen, was der Benutzer auswählen kann:

QFileDialog dialog(this);
dialog.setFileMode(QFileDialog::AnyFile);
  • AnyFile: Der Benutzer kann jede beliebige Datei auswählen, einschließlich Dateien, die nicht existieren (nützlich für „ Save As “-Dialoge).
  • ExistingFile: Der Benutzer muss eine vorhandene Datei auswählen.
  • Directory: Der Benutzer kann ein Verzeichnis auswählen.

Die vollständige Liste der Modi finden Sie in der Enumeration „ QFileDialog::FileMode “.

Die Eigenschaft „ fileMode “ enthält den aktuellen Betriebsmodus. Verwenden Sie „ setFileMode()“, um ihn zu ändern.

Anzeigemodi

QFileDialog bietet zwei Anzeigemodi:

  • Liste: Zeigt Dateien und Verzeichnisse als einfache Liste an.
  • Detail: Zeigt zusätzliche Informationen wie Dateigröße und Änderungsdatum an.

Legen Sie den Anzeigemodus mit ` setViewMode()` fest:

dialog.setViewMode(QFileDialog::Detail);

Ausgewählte Dateien abrufen

Nachdem der Dialog bestätigt wurde, verwenden Sie ` selectedFiles()` (), um die Auswahl des Benutzers abzurufen:

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

Das Arbeitsverzeichnis des Dialogfelds kann mit ` setDirectory()` festgelegt werden. Mit ` selectFile()` können Sie eine Datei vorab auswählen.

Hinweise zur Plattform

Standardmäßig verwendet `QFileDialog` den nativen Dateidialog der Plattform, sofern dieser verfügbar ist. In diesem Fall geben einige widgetspezifische APIs (wie ` layout()` und ` itemDelegate()`) möglicherweise ` null` zurück. Außerdem zeigen nicht alle Plattformen Dateidialoge mit einer Titelleiste an, sodass der Titeltext möglicherweise nicht sichtbar ist.

Um die Verwendung des Qt Widget-basierten Dialogfelds zu erzwingen, setzen Sie die Option ` DontUseNativeDialog ` oder das Anwendungsattribut ` AA_DontUseNativeDialogs `.

Sicherheitshinweise

Die Funktion ` restoreState()` deserialisiert einen versionierten Binär-Blob, der das Splitter-Layout des Dialogs, die Lesezeichen in der Seitenleiste, den Navigationsverlauf, das aktuelle Verzeichnis sowie einen eingebetteten ` QHeaderView `-Zustands-Blob beschreibt. Die Magic Number und die Version des Formats werden validiert, die einzelnen Felder werden jedoch nach der Akzeptanz der äußeren Struktur nicht weiter auf Gültigkeit geprüft.

Übergeben Sie an ` restoreState()` nur einen ` QByteArray `, der zuvor mit ` saveState()` erzeugt und von derselben oder einer kompatiblen Version Ihrer Anwendung gespeichert wurde, typischerweise über ` QSettings`. Stellen Sie den Status nicht aus einer Datei, einer Konfiguration oder einer anderen Quelle wieder her, deren Herkunft nicht vertrauenswürdig ist. Für den eingebetteten Header-Status gelten dieselben Überlegungen wie unter QHeaderView's Security Considerations beschrieben.

Siehe auch QDir, QFileInfo, QFile, QColorDialog, QFontDialog und das Beispiel „Standarddialoge“.

Dokumentation zu Mitgliedstypen

enum QFileDialog::AcceptMode

KonstanteWert
QFileDialog::AcceptOpen0
QFileDialog::AcceptSave1

enum QFileDialog::DialogLabel

KonstanteWert
QFileDialog::LookIn0
QFileDialog::FileName1
QFileDialog::FileType2
QFileDialog::Accept3
QFileDialog::Reject4

enum QFileDialog::FileMode

Diese Enumeration dient dazu, anzugeben, welche Optionen der Benutzer im Dateidialog auswählen kann; das heißt, welchen Wert der Dialog zurückgibt, wenn der Benutzer auf „OK“ klickt.

KonstanteWertBeschreibung
QFileDialog::AnyFile0Der Name einer Datei, unabhängig davon, ob sie existiert oder nicht.
QFileDialog::ExistingFile1Der Name einer einzelnen vorhandenen Datei.
QFileDialog::Directory2Der Name eines Verzeichnisses. Es werden sowohl Dateien als auch Verzeichnisse angezeigt. Der native Windows-Dateidialog unterstützt jedoch die Anzeige von Dateien in der Verzeichnisauswahl nicht.
QFileDialog::ExistingFiles3Die Namen von null oder mehr vorhandenen Dateien.

Siehe auch ` setFileMode()`.

enum QFileDialog::Option
flags QFileDialog::Options

Optionen, die das Verhalten des Dialogfelds beeinflussen.

KonstanteWertBeschreibung
QFileDialog::ShowDirsOnly0x00000001Nur Verzeichnisse anzeigen. Standardmäßig werden sowohl Dateien als auch Verzeichnisse angezeigt.
This option is only effective in the Directory file mode.
QFileDialog::DontResolveSymlinks0x00000002Symlinks nicht auflösen. Standardmäßig werden Symlinks aufgelöst.
QFileDialog::DontConfirmOverwrite0x00000004Frage nicht nach einer Bestätigung, wenn eine vorhandene Datei ausgewählt wird. Standardmäßig wird eine Bestätigung angefordert.
This option is only effective if acceptMode is AcceptSave). It is furthermore not used on macOS for native file dialogs.
QFileDialog::DontUseNativeDialog0x00000008Verwenden Sie nicht den plattform-eigenen Dateidialog, sondern den von Qt bereitgestellten, auf Widgets basierenden.
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.
Damit die Option wirksam wird, müssen Sie sie festlegen, bevor Sie andere Eigenschaften des Dialogfelds ändern oder das Dialogfeld anzeigen.
QFileDialog::ReadOnly0x00000010Gibt an, dass das Modell schreibgeschützt ist.
QFileDialog::HideNameFilterDetails0x00000020Gibt an, ob die Details des Dateinamenfilters ausgeblendet sind oder nicht.
QFileDialog::DontUseCustomDirectoryIcons0x00000040Verwenden Sie immer das Standard-Verzeichnissymbol.
Auf einigen Plattformen kann der Benutzer ein anderes Symbol festlegen, doch die Suche nach benutzerdefinierten Symbolen kann über das Netzwerk oder auf Wechseldatenträgern zu erheblichen Leistungseinbußen führen.
Setting this will enable the DontUseCustomDirectoryIcons option in iconProvider().
Dieser Enum-Wert wurde in Qt 5.2 hinzugefügt.

Der Typ „Options“ ist ein typedef für „QFlags<Option>“. Er speichert eine ODER-Kombination von Optionswerten.

Siehe auch options und testOption.

enum QFileDialog::ViewMode

Diese Enumeration beschreibt den Anzeigemodus des Dateidialogs, d. h., welche Informationen zu den einzelnen Dateien angezeigt werden.

KonstanteWertBeschreibung
QFileDialog::Detail0Zeigt für jedes Element im Verzeichnis ein Symbol, einen Namen und Details an.
QFileDialog::List1Zeigt für jedes Element im Verzeichnis nur ein Symbol und einen Namen an.

Siehe auch ` setViewMode()`.

Dokumentation zur Eigenschaft

acceptMode : AcceptMode

Diese Eigenschaft gibt den Akzeptanzmodus des Dialogfelds an.

Der Aktionsmodus legt fest, ob der Dialog zum Öffnen oder Speichern von Dateien dient.

Standardmäßig ist diese Eigenschaft auf „ AcceptOpen “ gesetzt.

Zugriffsfunktionen:

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

Siehe auch „ AcceptMode “.

defaultSuffix : QString

Suffix, das dem Dateinamen hinzugefügt wird, wenn kein anderes Suffix angegeben wurde.

Diese Eigenschaft gibt eine Zeichenfolge an, die dem Dateinamen hinzugefügt wird, wenn dieser noch keine Dateiendung hat. Die Dateiendung wird in der Regel verwendet, um den Dateityp anzugeben (z. B. steht „txt“ für eine Textdatei).

Ist das erste Zeichen ein Punkt ('.'), wird dieser entfernt.

Zugriffsfunktionen:

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

fileMode : FileMode

Diese Eigenschaft enthält den Dateimodus des Dialogfelds.

Der Dateimodus legt die Anzahl und Art der Elemente fest, die der Benutzer im Dialogfeld auswählen soll.

Standardmäßig ist diese Eigenschaft auf „ AnyFile “ gesetzt.

Diese Funktion legt die Beschriftungen für die „ FileName “- und „ Accept “- DialogLabels fest. Nach dem Aufruf von `setFileMode()` ist es möglich, benutzerdefinierten Text festzulegen.

Zugriffsfunktionen:

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

Siehe auch FileMode.

options : Options

Diese Eigenschaft enthält die verschiedenen Optionen, die das Erscheinungsbild des Dialogfelds beeinflussen.

Standardmäßig sind alle Optionen deaktiviert.

Optionen (insbesondere die Option „ DontUseNativeDialog “) sollten festgelegt werden, bevor die Eigenschaften des Dialogfelds geändert oder das Dialogfeld angezeigt wird.

Das Festlegen von Optionen, während der Dialog sichtbar ist, hat nicht unbedingt eine sofortige Auswirkung auf den Dialog (abhängig von der Option und der Plattform).

Das Setzen von Optionen nach dem Ändern anderer Eigenschaften kann dazu führen, dass diese Werte keine Wirkung zeigen.

Zugriffsfunktionen:

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

Siehe auch „ setOption()“ und „ testOption()“.

supportedSchemes : QStringList

Diese Eigenschaft enthält die URL-Schemas, zu denen der Dateidialog die Navigation zulassen soll.

Durch das Festlegen dieser Eigenschaft lässt sich die Art der URLs einschränken, die der Benutzer auswählen kann. Auf diese Weise kann die Anwendung die Protokolle angeben, die sie zum Abrufen des Dateiinhalts unterstützt. Eine leere Liste bedeutet, dass keine Einschränkung gilt (Standardeinstellung). Die Unterstützung für lokale Dateien (Schema „file“) ist implizit und immer aktiviert; es ist nicht erforderlich, sie in die Einschränkung aufzunehmen.

Zugriffsfunktionen:

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

viewMode : ViewMode

Diese Eigenschaft legt fest, wie Dateien und Verzeichnisse im Dialogfeld angezeigt werden.

Standardmäßig werden Informationen zu Dateien und Verzeichnissen im Modus „ Detail “ angezeigt.

Zugriffsfunktionen:

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

Siehe auch „ ViewMode “.

Dokumentation zu den Member-Funktionen

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

Erzeugt einen Dateidialog mit dem angegebenen „ parent “ und dem Widget „ flags “.

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

Erstellt einen Dateidialog mit den angegebenen Werten für „ parent “ und „ caption “, der zunächst den Inhalt des angegebenen Verzeichnisses „ directory “ anzeigt. Der Inhalt des Verzeichnisses wird vor der Anzeige im Dialog anhand einer durch Semikolons getrennten Liste von Filtern gefiltert, die unter „ filter “ festgelegt sind.

[virtual noexcept] QFileDialog::~QFileDialog()

Schließt den Dateidialog.

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

Implementiert: QDialog::accept().

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

Umsetzt: ` QWidget::changeEvent(QEvent *event)`.

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

Wenn sich bei lokalen Operationen die aktuelle Datei ändert, wird dieses Signal mit dem neuen Dateinamen als Parameter „ path “ ausgegeben.

Siehe auch ` filesSelected()`.

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

Wenn sich die aktuelle Datei ändert, wird dieses Signal mit der neuen Datei-URL als Parameter „ url “ ausgelöst.

Siehe auch urlsSelected().

QDir QFileDialog::directory() const

Gibt das Verzeichnis zurück, das derzeit im Dialogfeld angezeigt wird.

Siehe auch ` setDirectory()`.

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

Dieses Signal wird bei lokalen Vorgängen ausgegeben, wenn der Benutzer „ directory “ eingibt.

QUrl QFileDialog::directoryUrl() const

Gibt die URL des Verzeichnisses zurück, das derzeit im Dialogfeld angezeigt wird.

Siehe auch ` setDirectoryUrl()`.

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

Dieses Signal wird ausgegeben, wenn der Benutzer eine „ directory “ eingibt.

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

Implementiert: ` QDialog::done` (int r).

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

Wenn sich die Auswahl bei lokalen Operationen ändert und der Dialog bestätigt wird, wird dieses Signal mit dem (möglicherweise leeren) ausgewählten file ausgegeben.

Siehe auch ` currentChanged()` und ` QDialog::Accepted`.

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

Wenn sich die Auswahl für lokale Vorgänge ändert und der Dialog bestätigt wird, wird dieses Signal mit der (möglicherweise leeren) Liste der selected -Dateien ausgegeben.

Siehe auch „ currentChanged()“ und „ QDialog::Accepted “.

QDir::Filters QFileDialog::filter() const

Gibt den Filter zurück, der bei der Anzeige von Dateien verwendet wird.

Siehe auch „ setFilter()“.

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

Dieses Signal wird ausgesendet, wenn der Benutzer „ filter “ auswählt.

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

Dies ist eine statische Hilfsfunktion, die ein vom Benutzer ausgewähltes, bereits vorhandenes Verzeichnis zurückgibt.

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

Diese Funktion erstellt einen modalen Dateidialog mit dem angegebenen Widget „ parent “. Wenn „ parent “ nicht auf „ nullptr “ gesetzt ist, wird der Dialog zentriert über dem übergeordneten Widget angezeigt.

Das Arbeitsverzeichnis des Dialogs wird auf „ dir “ gesetzt, und die Beschriftung wird auf „ caption “ gesetzt. Beide können eine leere Zeichenkette sein; in diesem Fall werden jeweils das aktuelle Verzeichnis und eine Standardbeschriftung verwendet.

Das Argument „ options “ enthält verschiedene Optionen zur Ausführung des Dialogs. Weitere Informationen zu den übergebbaren Flags finden Sie in der Aufzählung „ QFileDialog::Option “. Um einen nativen Dateidialog zu gewährleisten, muss „ ShowDirsOnly “ gesetzt sein.

Unter Windows und macOS verwendet diese statische Funktion den nativen Dateidialog und nicht einen „ QFileDialog “. Der native Windows-Dateidialog unterstützt jedoch nicht die Anzeige von Dateien in der Verzeichnisauswahl. Sie müssen die Option „ DontUseNativeDialog “ übergeben oder das globale Anwendungsattribut „ AA_DontUseNativeDialogs “ setzen, um Dateien mithilfe eines „ QFileDialog “ anzuzeigen.

Beachten Sie, dass der native macOS-Dateidialog keine Titelleiste anzeigt.

Unter Unix/X11 besteht das normale Verhalten des Dateidialogs darin, symbolische Links aufzulösen und zu folgen. Ist beispielsweise /usr/tmp ein symbolischer Link zu /var/tmp, wechselt der Dateidialog nach Eingabe von /usr/tmp zu /var/tmp. Enthält options den Eintrag DontResolveSymlinks, behandelt der Dateidialog symbolische Links wie normale Verzeichnisse.

Unter Windows führt der Dialog eine blockierende modale Ereignisschleife aus, die keine QTimer auslöst, und wenn „ parent “ nicht „ nullptr “ ist, positioniert er den Dialog direkt unterhalb der Titelleiste des übergeordneten Fensters.

Siehe auch getOpenFileName(), getOpenFileNames() und getSaveFileName().

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

Dies ist eine statische Hilfsfunktion, die ein vom Benutzer ausgewähltes, bereits vorhandenes Verzeichnis zurückgibt. Wenn der Benutzer auf „Abbrechen“ klickt, gibt die Funktion eine leere URL zurück.

Die Funktion wird ähnlich wie „ QFileDialog::getExistingDirectory()“ verwendet. Insbesondere werden „ parent “, „ caption “, „ dir “ und „ options “ auf genau dieselbe Weise verwendet.

Der Hauptunterschied zu ` QFileDialog::getExistingDirectory()` besteht darin, dass dem Benutzer die Möglichkeit geboten wird, ein entferntes Verzeichnis auszuwählen. Aus diesem Grund ist der Rückgabetyp von ` dir ` der Typ ` QUrl`.

Das Argument „ supportedSchemes “ ermöglicht es, die Art der URLs einzuschränken, die der Benutzer auswählen kann. Auf diese Weise kann die Anwendung die Protokolle angeben, die sie zum Abrufen des Dateiinhalts unterstützt. Eine leere Liste bedeutet, dass keine Einschränkung gilt (Standardeinstellung). Die Unterstützung für lokale Dateien (Schema „file“) ist implizit und immer aktiviert; es ist nicht erforderlich, sie in die Einschränkung aufzunehmen.

Wenn möglich, verwendet diese statische Funktion den nativen Dateidialog und nicht einen ` QFileDialog`. Auf Plattformen, die die Auswahl von Remote-Dateien nicht unterstützen, erlaubt Qt nur die Auswahl lokaler Dateien.

Siehe auch getExistingDirectory(), getOpenFileUrl(), getOpenFileUrls() und getSaveFileUrl().

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

Dies ist eine statische Hilfsfunktion, die den Inhalt einer vom Benutzer ausgewählten Datei zurückgibt.

Verwenden Sie diese Funktion, um in Qt für WebAssembly auf lokale Dateien zuzugreifen, falls die Web-Sandbox den Dateizugriff einschränkt. Die Implementierung ermöglicht die Anzeige eines nativen Dateidialogs im Browser, in dem der Benutzer anhand des Parameters „ nameFilter “ eine Datei auswählt.

parent wird in Qt für WebAssembly ignoriert. Übergeben Sie „ parent “ auf anderen Plattformen, um das Popup als untergeordnetes Element eines anderen Widgets darzustellen. Wenn die Plattform keine nativen Dateidialoge unterstützt, greift die Funktion auf „ QFileDialog “ zurück.

Die Funktion ist asynchron und kehrt sofort zurück. Der Callback ` fileOpenCompleted ` wird aufgerufen, sobald eine Datei ausgewählt und deren Inhalt in den Speicher eingelesen wurde.

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())

Dies ist eine statische Hilfsfunktion, die eine vom Benutzer ausgewählte vorhandene Datei zurückgibt. Wenn der Benutzer auf „Abbrechen“ klickt, gibt sie eine leere Zeichenfolge zurück.

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

Die Funktion erstellt einen modalen Dateidialog mit dem angegebenen Widget „ parent “. Ist „ parent “ nicht auf „ nullptr “ gesetzt, wird der Dialog zentriert über dem übergeordneten Widget angezeigt.

Das Arbeitsverzeichnis des Dateidialogs wird auf ` dir` gesetzt. Wenn ` dir ` einen Dateinamen enthält, wird diese Datei ausgewählt. Es werden nur Dateien angezeigt, die dem angegebenen ` filter ` entsprechen. Der ausgewählte Filter wird auf ` selectedFilter` gesetzt. Die Parameter ` dir`, ` selectedFilter` und ` filter ` dürfen leere Zeichenketten sein. Wenn Sie mehrere Filter verwenden möchten, trennen Sie diese durch „;;“, zum Beispiel:

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

Das Argument „ options “ enthält verschiedene Optionen zur Ausführung des Dialogs. Weitere Informationen zu den übergebbaren Flags finden Sie in der Aufzählung „ QFileDialog::Option “.

Die Beschriftung des Dialogfelds wird auf ` caption` gesetzt. Wenn ` caption ` nicht angegeben ist, wird eine Standardbeschriftung verwendet.

Unter Windows und macOS verwendet diese statische Funktion den nativen Dateidialog und nicht „ QFileDialog “. Beachten Sie, dass der native Dateidialog von macOS keine Titelleiste anzeigt.

Unter Windows führt der Dialog eine blockierende modale Ereignisschleife aus, die keine QTimers auslöst, und wenn „ parent “ nicht „ nullptr “ ist, wird der Dialog direkt unterhalb der Titelleiste des übergeordneten Fensters positioniert.

Unter Unix/X11 besteht das normale Verhalten des Dateidialogs darin, Symlinks aufzulösen und ihnen zu folgen. Ist beispielsweise /usr/tmp ein Symlink zu /var/tmp, wechselt der Dateidialog nach der Eingabe von /usr/tmp zu /var/tmp. Enthält options den Eintrag DontResolveSymlinks, behandelt der Dateidialog Symlinks wie normale Verzeichnisse.

Siehe auch getOpenFileNames(), getSaveFileName() und 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())

Dies ist eine statische Hilfsfunktion, die eine oder mehrere vom Benutzer ausgewählte vorhandene Dateien zurückgibt.

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

Diese Funktion erstellt einen modalen Dateidialog mit dem angegebenen Widget „ parent “. Wenn „ parent “ nicht „ nullptr “ ist, wird der Dialog zentriert über dem übergeordneten Widget angezeigt.

Das Arbeitsverzeichnis des Dateidialogs wird auf ` dir` gesetzt. Wenn ` dir ` einen Dateinamen enthält, wird diese Datei ausgewählt. Der Filter wird auf ` filter ` gesetzt, sodass nur die Dateien angezeigt werden, die dem Filter entsprechen. Der ausgewählte Filter wird auf ` selectedFilter` gesetzt. Die Parameter ` dir`, ` selectedFilter ` und ` filter ` können leere Zeichenfolgen sein. Wenn Sie mehrere Filter benötigen, trennen Sie diese durch „;;“, zum Beispiel:

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

Die Beschriftung des Dialogfelds ist auf „ caption “ gesetzt. Wenn „ caption “ nicht angegeben ist, wird eine Standardbeschriftung verwendet.

Unter Windows und macOS verwendet diese statische Funktion den nativen Dateidialog und keinen „ QFileDialog “. Beachten Sie, dass der native Dateidialog von macOS keine Titelleiste anzeigt.

Unter Windows führt der Dialog eine blockierende modale Ereignisschleife aus, die keine QTimers auslöst, und wenn „ parent “ nicht „ nullptr “ ist, wird der Dialog direkt unterhalb der Titelleiste des übergeordneten Fensters positioniert.

Unter Unix/X11 besteht das normale Verhalten des Dateidialogs darin, Symlinks aufzulösen und zu folgen. Ist beispielsweise /usr/tmp ein Symlink zu /var/tmp, wechselt der Dateidialog nach Eingabe von /usr/tmp zu /var/tmp. Das Argument „ options “ enthält verschiedene Optionen zur Ausführung des Dialogs; weitere Informationen zu den übergebbaren Flags finden Sie in der Enumeration „ QFileDialog::Option “.

Siehe auch getOpenFileName(), getSaveFileName() und 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())

Dies ist eine statische Hilfsfunktion, die eine vom Benutzer ausgewählte, bereits vorhandene Datei zurückgibt. Wenn der Benutzer auf „Abbrechen“ klickt, gibt sie eine leere URL zurück.

Die Funktion wird ähnlich wie „ QFileDialog::getOpenFileName()“ verwendet. Insbesondere „ parent “, „ caption “, „ dir “, „ filter “, „ selectedFilter “ und „ options “ werden auf genau dieselbe Weise verwendet.

Der Hauptunterschied zu ` QFileDialog::getOpenFileName()` besteht darin, dass dem Benutzer die Möglichkeit geboten wird, eine Remote-Datei auszuwählen. Aus diesem Grund ist der Rückgabetyp und der Typ von ` dir ` ` QUrl`.

Das Argument „ supportedSchemes “ ermöglicht es, die Art der URLs einzuschränken, die der Benutzer auswählen kann. Auf diese Weise kann die Anwendung die Protokolle angeben, die sie zum Abrufen des Dateiinhalts unterstützt. Eine leere Liste bedeutet, dass keine Einschränkung gilt (Standardeinstellung). Die Unterstützung für lokale Dateien (Schema „file“) ist implizit und immer aktiviert; es ist nicht notwendig, sie in die Einschränkung aufzunehmen.

Wenn möglich, verwendet diese statische Funktion den nativen Dateidialog und nicht „ QFileDialog “. Auf Plattformen, die die Auswahl von Remote-Dateien nicht unterstützen, lässt Qt nur die Auswahl lokaler Dateien zu.

Siehe auch getOpenFileName(), getOpenFileUrls(), getSaveFileUrl() und 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())

Dies ist eine statische Hilfsfunktion, die eine oder mehrere vom Benutzer ausgewählte vorhandene Dateien zurückgibt. Wenn der Benutzer auf „Abbrechen“ klickt, gibt die Funktion eine leere Liste zurück.

Die Funktion wird ähnlich wie „ QFileDialog::getOpenFileNames()“ verwendet. Insbesondere „ parent “, „ caption “, „ dir “, „ filter “, „ selectedFilter “ und „ options “ werden auf genau dieselbe Weise verwendet.

Der Hauptunterschied zu QFileDialog::getOpenFileNames() besteht darin, dass der Benutzer hier die Möglichkeit hat, Remote-Dateien auszuwählen. Aus diesem Grund lauten der Rückgabetyp und der Typ von dir jeweils QList<QUrl> und QUrl.

Das Argument „ supportedSchemes “ ermöglicht es, den Typ der URLs einzuschränken, die der Benutzer auswählen kann. Auf diese Weise kann die Anwendung die Protokolle angeben, die sie zum Abrufen des Dateiinhalts unterstützt. Eine leere Liste bedeutet, dass keine Einschränkung gilt (Standardeinstellung). Die Unterstützung für lokale Dateien (Schema „file“) ist implizit und immer aktiviert; es ist nicht erforderlich, sie in die Einschränkung aufzunehmen.

Wenn möglich, verwendet diese statische Funktion den nativen Dateidialog und nicht einen ` QFileDialog`. Auf Plattformen, die die Auswahl von Remote-Dateien nicht unterstützen, lässt Qt nur die Auswahl lokaler Dateien zu.

Siehe auch getOpenFileNames(), getOpenFileUrl(), getSaveFileUrl() und 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())

Dies ist eine statische Hilfsfunktion, die einen vom Benutzer ausgewählten Dateinamen zurückgibt. Die Datei muss nicht vorhanden sein.

Sie erstellt einen modalen Dateidialog mit dem angegebenen Widget „ parent “. Wenn „ parent “ nicht auf „ nullptr “ gesetzt ist, wird der Dialog zentriert über dem übergeordneten Widget angezeigt.

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

Das Arbeitsverzeichnis des Dateidialogs wird auf ` dir` gesetzt. Enthält ` dir ` einen Dateinamen, wird diese Datei ausgewählt. Es werden nur Dateien angezeigt, die dem ` filter ` entsprechen. Der ausgewählte Filter wird auf ` selectedFilter` gesetzt. Die Parameter ` dir`, ` selectedFilter` und ` filter ` dürfen leere Zeichenketten sein. Mehrere Filter werden durch „;;“ getrennt. Zum Beispiel:

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

Das Argument „ options “ enthält verschiedene Optionen zur Ausführung des Dialogs. Weitere Informationen zu den Flags, die Sie übergeben können, finden Sie in der Aufzählung „ QFileDialog::Option “.

Der Standardfilter kann durch Setzen von ` selectedFilter ` auf den gewünschten Wert ausgewählt werden.

Die Beschriftung des Dialogfelds wird auf „ caption “ gesetzt. Wenn „ caption “ nicht angegeben ist, wird eine Standardbeschriftung verwendet.

Unter Windows und macOS verwendet diese statische Funktion den nativen Dateidialog und nicht einen ` QFileDialog`.

Unter Windows führt der Dialog eine blockierende modale Ereignisschleife aus, die keine QTimers auslöst, und wenn ` parent ` nicht ` nullptr ` ist, wird der Dialog direkt unterhalb der Titelleiste des übergeordneten Fensters positioniert. Unter macOS wird bei Verwendung des nativen Dateidialogs das Argument `filter` ignoriert.

Unter Unix/X11 besteht das normale Verhalten des Dateidialogs darin, symbolische Links aufzulösen und zu folgen. Ist beispielsweise /usr/tmp ein symbolischer Link zu /var/tmp, wechselt der Dateidialog nach Eingabe von /usr/tmp zu /var/tmp. Enthält options den Eintrag DontResolveSymlinks, behandelt der Dateidialog symbolische Links wie normale Verzeichnisse.

Siehe auch getOpenFileName(), getOpenFileNames() und 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())

Dies ist eine statische Hilfsfunktion, die eine vom Benutzer ausgewählte Datei zurückgibt. Die Datei muss nicht vorhanden sein. Wenn der Benutzer auf „Abbrechen“ klickt, wird eine leere URL zurückgegeben.

Die Funktion wird ähnlich wie ` QFileDialog::getSaveFileName()` verwendet. Insbesondere werden ` parent`, ` caption`, ` dir`, ` filter`, ` selectedFilter ` und ` options ` auf genau dieselbe Weise verwendet.

Der Hauptunterschied zu ` QFileDialog::getSaveFileName()` besteht darin, dass dem Benutzer die Möglichkeit geboten wird, eine Remote-Datei auszuwählen. Aus diesem Grund ist der Rückgabetyp und der Typ von ` dir ` ` QUrl`.

Das Argument ` supportedSchemes ` ermöglicht es, die Art der URLs einzuschränken, die der Benutzer auswählen kann. Auf diese Weise kann die Anwendung die Protokolle angeben, die sie zum Speichern des Dateiinhalts unterstützt. Eine leere Liste bedeutet, dass keine Einschränkung gilt (Standard). Die Unterstützung für lokale Dateien (Schema „file“) ist implizit und immer aktiviert; es ist nicht erforderlich, sie in die Einschränkung aufzunehmen.

Wenn möglich, verwendet diese statische Funktion den nativen Dateidialog und nicht einen ` QFileDialog`. Auf Plattformen, die die Auswahl von Remote-Dateien nicht unterstützen, lässt Qt nur die Auswahl lokaler Dateien zu.

Siehe auch getSaveFileName(), getOpenFileUrl(), getOpenFileUrls() und getExistingDirectoryUrl().

QStringList QFileDialog::history() const

Gibt den Browserverlauf des Dateidialogs als Liste von Pfaden zurück.

Siehe auch ` setHistory()`.

QAbstractFileIconProvider *QFileDialog::iconProvider() const

Gibt den vom Dateidialog verwendeten Icon-Anbieter zurück.

Siehe auch „ setIconProvider()“.

QAbstractItemDelegate *QFileDialog::itemDelegate() const

Gibt den Element-Delegaten zurück, der zum Rendern der Elemente in den Ansichten des Dateidialogs verwendet wird.

Siehe auch ` setItemDelegate()`.

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

Gibt den Text zurück, der im Dateidialog unter der angegebenen Adresse label angezeigt wird.

Siehe auch setLabelText().

QStringList QFileDialog::mimeTypeFilters() const

Gibt die MIME-Typ-Filter zurück, die in diesem Dateidialog aktiv sind.

Siehe auch ` setMimeTypeFilters()`.

QStringList QFileDialog::nameFilters() const

Gibt die Dateityp-Filter zurück, die in diesem Dateidialog aktiv sind.

Siehe auch setNameFilters().

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

Diese Funktion zeigt das Dialogfeld an und verbindet den durch „ receiver “ und „ member “ angegebenen Slot mit dem Signal, das über Änderungen der Auswahl informiert. Wenn „ fileMode “ auf „ ExistingFiles “ gesetzt ist, handelt es sich um das Signal „ filesSelected()“, andernfalls um das Signal „ fileSelected()“.

Das Signal wird vom Slot getrennt, wenn das Dialogfeld geschlossen wird.

QAbstractProxyModel *QFileDialog::proxyModel() const

Gibt das vom Dateidialog verwendete Proxy-Modell zurück. Standardmäßig ist kein Proxy festgelegt.

Siehe auch „ setProxyModel()“.

bool QFileDialog::restoreState(const QByteArray &state)

Stellt das Layout, den Verlauf und das aktuelle Verzeichnis des Dialogs auf die angegebene Adresse state zurück.

In der Regel wird dies in Verbindung mit ` QSettings ` verwendet, um die Größe aus einer früheren Sitzung wiederherzustellen.

Gibt „ false “ zurück, falls Fehler auftreten.

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

Dies ist eine statische Hilfsfunktion, die „ fileContent “ unter einem vom Benutzer gewählten Dateinamen und Speicherort in einer Datei speichert. Mit „ fileNameHint “ kann dem Benutzer ein Dateiname vorgeschlagen werden.

Verwenden Sie diese Funktion, um Inhalte unter Qt for WebAssembly in lokalen Dateien zu speichern, falls die Web-Sandbox den Dateizugriff einschränkt. Die Implementierung ermöglicht die Anzeige eines nativen Dateidialogs im Browser, in dem der Benutzer anhand des Arguments „ fileNameHint “ eine Ausgabedatei festlegt.

parent wird bei Qt für WebAssembly ignoriert. Übergeben Sie auf anderen Plattformen parent, damit das Popup-Fenster ein untergeordnetes Element eines anderen Widgets wird. Wenn die Plattform keine nativen Dateidialoge unterstützt, greift die Funktion auf QFileDialog zurück.

Die Funktion ist asynchron und kehrt sofort zurück.

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

QByteArray QFileDialog::saveState() const

Speichert den Zustand des Layouts, des Verlaufs und des aktuellen Verzeichnisses des Dialogs.

In der Regel wird dies in Verbindung mit „ QSettings “ verwendet, um die Größe für eine zukünftige Sitzung zu speichern. Als Teil der Daten wird eine Versionsnummer gespeichert.

void QFileDialog::selectFile(const QString &filename)

Wählt die angegebene Datei „ filename “ im Dateidialog aus.

Siehe auch selectedFiles().

void QFileDialog::selectMimeTypeFilter(const QString &filter)

Legt den aktuellen MIME-Typ fest: filter.

void QFileDialog::selectNameFilter(const QString &filter)

Legt den aktuellen Dateityp fest: filter. Es können mehrere Filter an filter übergeben werden, indem diese durch Semikolons oder Leerzeichen getrennt werden.

Siehe auch setNameFilter(), setNameFilters() und selectedNameFilter().

void QFileDialog::selectUrl(const QUrl &url)

Wählt die angegebene Datei „ url “ im Dateidialog aus.

Hinweis: Die nicht-nativeFunktion „ QFileDialog “ unterstützt nur lokale Dateien.

Siehe auch ` selectedUrls()`.

QStringList QFileDialog::selectedFiles() const

Gibt eine Liste von Zeichenketten zurück, die die absoluten Pfade der im Dialogfeld ausgewählten Dateien enthalten. Wenn keine Dateien ausgewählt sind oder der Modus nicht „ ExistingFiles “ oder „ ExistingFile “ ist, enthält `selectedFiles()` den aktuellen Pfad im Ansichtsbereich.

Siehe auch ` selectedNameFilter()` und ` selectFile()`.

QString QFileDialog::selectedMimeTypeFilter() const

Gibt den MIME-Typ der Datei zurück, die der Benutzer im Dateidialog ausgewählt hat.

QString QFileDialog::selectedNameFilter() const

Gibt den Filter zurück, den der Benutzer im Dateidialog ausgewählt hat.

Siehe auch „ selectedFiles()“.

QList<QUrl> QFileDialog::selectedUrls() const

Gibt eine Liste von URLs zurück, die die im Dialogfeld ausgewählten Dateien enthalten. Wenn keine Dateien ausgewählt sind oder der Modus nicht „ ExistingFiles “ oder „ ExistingFile “ ist, enthält `selectedUrls()` den aktuellen Pfad im Ansichtsbereich.

Siehe auch ` selectedNameFilter()` und ` selectUrl()`.

void QFileDialog::setDirectory(const QString &directory)

Legt die aktuelle URL des Dateidialogs fest: directory.

Hinweis: Wenn Sieunter iOS „ directory “ auf „ QStandardPaths::standardLocations(QStandardPaths::PicturesLocation).last()“ setzen, wird ein nativer Bildauswahldialog verwendet, um auf das Fotoalbum des Benutzers zuzugreifen. Der zurückgegebene Dateiname kann mithilfe von ` QFile ` und den zugehörigen APIs geladen werden. Damit dies aktiviert wird, muss die Info.plist, die in der Projektdatei QMAKE_INFO_PLIST zugewiesen ist, den Schlüssel ` NSPhotoLibraryUsageDescription` enthalten. Weitere Informationen zu diesem Schlüssel finden Sie in der Info.plist-Dokumentation von Apple. Diese Funktion wurde in Qt 5.5 hinzugefügt.

Siehe auch directory().

void QFileDialog::setDirectory(const QDir &directory)

Dies ist eine überladene Funktion.

void QFileDialog::setDirectoryUrl(const QUrl &directory)

Legt die aktuelle URL des Dateidialogs directory fest.

Hinweis: Die nicht-native QFileDialog unterstützt nur lokale Dateien.

Hinweis: Unter Windows ist es möglich, URLs zu übergeben, die einen der virtuellen Ordner wie „Computer“ oder „Netzwerk“ darstellen. Dies geschieht durch die Übergabe eines „ QUrl “ unter Verwendung des Schemas clsid, gefolgt vom CLSID-Wert ohne geschweifte Klammern. Beispielsweise bezeichnet die URL clsid:374DE290-123F-4565-9164-39C4925E467B den Speicherort für den Download. Eine vollständige Liste der möglichen Werte finden Sie in der MSDN-Dokumentation zu KNOWNFOLDERID. Diese Funktion wurde in Qt 5.5 hinzugefügt.

Siehe auch directoryUrl() und QUuid.

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

Legt den vom Modell verwendeten Filter auf „ filters “ fest. Der Filter dient dazu, die Art der Dateien festzulegen, die angezeigt werden sollen.

Siehe auch „ filter()“.

void QFileDialog::setHistory(const QStringList &paths)

Legt fest, dass der Browserverlauf des Dateidialogs die angegebene URL paths enthält.

Siehe auch history().

void QFileDialog::setIconProvider(QAbstractFileIconProvider *provider)

Legt den vom Dateidialog verwendeten Icon-Anbieter auf die angegebene Adresse provider fest.

Siehe auch iconProvider().

void QFileDialog::setItemDelegate(QAbstractItemDelegate *delegate)

Legt den Element-Delegaten fest, der zum Rendern von Elementen in den Ansichten des Dateidialogs verwendet wird, auf den angegebenen „ delegate “.

Ein eventuell vorhandener Delegat wird entfernt, jedoch nicht gelöscht. „ QFileDialog “ übernimmt nicht die Eigentümerschaft an „ delegate “.

Warnung: Sie sollten nicht dieselbe Instanz eines Delegaten für mehrere Ansichten verwenden. Dies kann zu fehlerhaftem oder nicht intuitivem Bearbeitungsverhalten führen, da jede mit einem bestimmten Delegaten verbundene Ansicht das Signal „ closeEditor()“ empfangen und versuchen könnte, auf einen bereits geschlossenen Editor zuzugreifen, ihn zu ändern oder zu schließen.

Beachten Sie, dass das verwendete Modell „ QFileSystemModel “ ist. Es verfügt über benutzerdefinierte Item-Datenrollen, die durch die Enumeration „ Roles “ beschrieben werden. Sie können „ QFileIconProvider “ verwenden, wenn Sie nur benutzerdefinierte Symbole wünschen.

Siehe auch itemDelegate(), setIconProvider() und QFileSystemModel.

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

Legt die im Dateidialog angezeigten „ text “ (Bezeichnung der Datei) im angegebenen „ label “ fest.

Siehe auch labelText().

void QFileDialog::setMimeTypeFilters(const QStringList &filters)

Legt den im Dateidialog verwendeten „ filters “ aus einer Liste von MIME-Typen fest.

Komfortmethode für ` setNameFilters()`. Verwendet ` QMimeType `, um anhand der in jedem MIME-Typ definierten Glob-Muster und Beschreibungen einen Namensfilter zu erstellen.

Verwenden Sie `application/octet-stream` für den Filter „Alle Dateien (*), da dies der Basis-MIME-Typ für alle Dateien ist.

Der Aufruf von `setMimeTypeFilters` überschreibt alle zuvor festgelegten Namensfilter und ändert den Rückgabewert von ` 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();

Siehe auch ` mimeTypeFilters()`.

void QFileDialog::setNameFilter(const QString &filter)

Setzt den im Dateidialog verwendeten Filter auf den angegebenen „ filter “.

Wenn „ filter “ ein Klammerpaar enthält, in dem ein oder mehrere durch Leerzeichen getrennte Dateinamen-Platzhaltermuster stehen, wird nur der Text innerhalb der Klammern als Filter verwendet. Das bedeutet, dass folgende Aufrufe alle gleichbedeutend sind:

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

Hinweis: Beim nativen Dateidialog von Android wird der MIME-Typ verwendet, der dem angegebenen Namensfilter entspricht, da nur MIME-Typen unterstützt werden.

Siehe auch „ setMimeTypeFilters()“ und „ setNameFilters()“.

void QFileDialog::setNameFilters(const QStringList &filters)

Legt den im Dateidialog verwendeten Filter „ filters “ fest.

Beachten Sie, dass der Filter *.* nicht portabel ist, da die historische Annahme, dass die Dateierweiterung den Dateityp bestimmt, nicht auf jedem Betriebssystem konsistent ist. Es ist möglich, dass eine Datei keinen Punkt im Namen hat (zum Beispiel Makefile). In einem nativen Windows-Dateidialog findet *.* solche Dateien, während dies in anderen Arten von Dateidialogen möglicherweise nicht der Fall ist. Daher ist es besser, * zu verwenden, wenn Sie jede beliebige Datei auswählen möchten.

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

setMimeTypeFilters() hat den Vorteil, dass es alle möglichen Namensfilter für jeden Dateityp bereitstellt. JPEG-Bilder haben beispielsweise drei mögliche Erweiterungen; wenn Ihre Anwendung solche Dateien öffnen kann, können Sie durch Auswahl des MIME-Typs „ image/jpeg “ als Filter alle diese Dateien öffnen.

Siehe auch nameFilters().

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

Setzt die angegebene Option „ option “ auf „Enabled“, wenn „ on “ auf „true“ gesetzt ist; andernfalls wird die angegebene Option „ option “ zurückgesetzt.

Optionen (insbesondere die Option „ DontUseNativeDialog “) sollten vor dem Ändern der Dialog-Eigenschaften oder dem Anzeigen des Dialogs festgelegt werden.

Das Festlegen von Optionen, während der Dialog sichtbar ist, hat nicht unbedingt eine sofortige Auswirkung auf den Dialog (abhängig von der Option und der Plattform).

Das Setzen von Optionen nach dem Ändern anderer Eigenschaften kann dazu führen, dass diese Werte keine Wirkung zeigen.

Siehe auch „ options “ und „ testOption()“.

void QFileDialog::setProxyModel(QAbstractProxyModel *proxyModel)

Legt das Modell für die Ansichten auf die angegebene Datei „ proxyModel “ fest. Dies ist nützlich, wenn Sie das zugrunde liegende Modell ändern möchten, beispielsweise um Spalten hinzuzufügen, Daten zu filtern oder Laufwerke hinzuzufügen.

Ein eventuell vorhandenes Proxy-Modell wird entfernt, jedoch nicht gelöscht. Der Dateidialog übernimmt die Eigentumsrechte an ` proxyModel`.

Siehe auch proxyModel().

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

Legt die „ urls “ fest, die sich in der Seitenleiste befinden.

Beispiel:

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()) {
    // ...
}

Dann sieht der Dateidialog wie folgt aus:

Dateidialog mit voreingestellten URLs in der Seitenleiste öffnen

Siehe auch „ sidebarUrls“ ().

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

Implementiert: QDialog::setVisible(bool visible).

QList<QUrl> QFileDialog::sidebarUrls() const

Gibt eine Liste der URLs zurück, die derzeit in der Seitenleiste angezeigt werden

Siehe auch „ setSidebarUrls()“.

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

Gibt „ true “ zurück, wenn die angegebene Funktion „ option “ aktiviert ist; andernfalls wird „false“ zurückgegeben.

Siehe auch „ options “ und „ setOption()“.

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

Wenn sich die Auswahl ändert und der Dialog bestätigt wird, wird dieses Signal mit der (möglicherweise leeren) ausgewählten url ausgegeben.

Siehe auch currentUrlChanged() und QDialog::Accepted.

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

Wenn sich die Auswahl ändert und der Dialog bestätigt wird, wird dieses Signal mit der (möglicherweise leeren) Liste der ausgewählten Elemente urls ausgegeben.

Siehe auch currentUrlChanged() und QDialog::Accepted.

© 2026 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.