Sur cette page

QFileOpenEvent Class

La classe `QFileOpenEvent` fournit un événement qui est déclenché lorsqu'une demande d'ouverture d'un fichier ou d'une URL est émise. En savoir plus...

En-tête : #include <QFileOpenEvent>
CMake : find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake : QT += gui
Hérite de : QEvent

Fonctions publiques

QString file() const
QUrl url() const

Fonctions protégées

QFileOpenEvent(QFileOpenEvent &&)
QFileOpenEvent &operator=(QFileOpenEvent &&)
QFileOpenEvent &operator=(const QFileOpenEvent &other)

Description détaillée

Les événements d’ouverture de fichier sont envoyés à l’ QApplication::instance() lorsque le système d’exploitation demande l’ouverture d’un fichier ou d’une URL. Il s'agit d'un événement de haut niveau qui peut être déclenché par différentes actions de l'utilisateur selon la plateforme ; par exemple, un double-clic sur un fichier dans le Finder ou le glisser-déposer d'un fichier vers l'icône de l'application dans le Dock sous macOS, ou encore le partage d'un fichier depuis une autre application sous iOS.

Cet événement sert uniquement à notifier l’application d’une requête. Il peut être ignoré en toute sécurité si le fichier ne doit pas être ouvert.

Plateformes Apple

Pour déclencher l’événement sur les plateformes Apple, l’application doit être configurée de manière à indiquer au système d’exploitation le ou les types de fichiers auxquels elle doit réagir.

Par exemple, le fichier « Info.plist » suivant indique que l'application peut servir de visionneuse pour les fichiers PNG :

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>CFBundleDocumentTypes</key>
    <array>
        <dict>
            <key>LSItemContentTypes</key>
            <array>
                <string>public.png</string>
            </array>
            <key>CFBundleTypeRole</key>
            <string>Viewer</string>
        </dict>
    </array>
</dict>
</plist>

La clé suivante est également nécessaire sous iOS pour que l’application apparaisse parmi les options « Ouvrir avec » dans, par exemple, l’application Fichiers :

<key>UISupportsDocumentBrowser</key>
<true/>

L’implémentation suivante d’une sous-classe de ` QApplication ` montre comment gérer un `QFileOpenEvent` pour ouvrir le fichier qui a, par exemple, été déposé sur l’icône de l’application dans le Dock.

#include <QApplication>
#include <QDebug>
#include <QFile>
#include <QFileOpenEvent>
#include <QPushButton>

class MyApplication : public QApplication
{
public:
    MyApplication(int &argc, char **argv)
        : QApplication(argc, argv)
    {
    }

    bool event(QEvent *event) override
    {
        if (event->type() == QEvent::FileOpen) {
            QFileOpenEvent *openEvent = static_cast<QFileOpenEvent *>(event);
            const QUrl url = openEvent->url();
            if (url.isLocalFile()) {
                QFile localFile(url.toLocalFile());
                // read from local file
            } else if (url.isValid()) {
                // process according to the URL's schema
            } else {
                // parse openEvent->file()
            }
        }

        return QApplication::event(event);
    }
};

Notez que le nom « QFileOpenEvent::file() » n’est pas nécessairement celui d’un fichier local pouvant être ouvert à l’aide de ` QFile`. Le contenu de la chaîne de caractères dépend de l’application source.

Documentation des fonctions membres

[protected delete] QFileOpenEvent::QFileOpenEvent(QFileOpenEvent &&)

Crée par « move » une instance de ` QFileOpenEvent`. Cette fonction est supprimée.

QString QFileOpenEvent::file() const

Renvoie le nom du fichier que l'application doit ouvrir.

Il n'est pas garanti qu'il s'agisse du chemin d'accès à un fichier local.

QUrl QFileOpenEvent::url() const

Renvoie l'URL que l'application doit ouvrir.

[protected delete] QFileOpenEvent &QFileOpenEvent::operator=(QFileOpenEvent &&)

La commande « Move » attribue « other » à cette instance « QFileOpenEvent ». Cette fonction est supprimée.

[noexcept protected default] QFileOpenEvent &QFileOpenEvent::operator=(const QFileOpenEvent &other)

Attribue par copie l'other à cette instance d'QFileOpenEvent.

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