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 |
- Liste de tous les membres, y compris les membres hérités
- Membres obsolètes
- QFileOpenEvent fait partie des classes d'événements.
Fonctions publiques
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.