QFileOpenEvent Class
Die Klasse QFileOpenEvent stellt ein Ereignis bereit, das gesendet wird, wenn eine Anforderung zum Öffnen einer Datei oder einer URL vorliegt. Mehr...
| Kopfzeile: | #include <QFileOpenEvent> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Gui)target_link_libraries(mytarget PRIVATE Qt6::Gui) |
| qmake: | QT += gui |
| Vererbt: | QEvent |
- Liste aller Mitglieder, einschließlich geerbter Mitglieder
- Veraltete Mitglieder
- QFileOpenEvent ist Teil von Event Classes.
Öffentliche Funktionen
Detaillierte Beschreibung
Datei-Open-Ereignisse werden an QApplication::instance() gesendet, wenn das Betriebssystem anfordert, dass eine Datei oder URL geöffnet werden soll. Dies ist ein High-Level-Ereignis, das je nach Plattform durch verschiedene Benutzeraktionen ausgelöst werden kann, z. B. durch einen Doppelklick auf eine Datei im Finder oder das Ziehen einer Datei auf das Dock-Symbol der Anwendung unter macOS oder die Freigabe einer Datei aus einer anderen Anwendung unter iOS.
Dieses Ereignis wird nur verwendet, um die Anwendung über eine Anfrage zu informieren. Es kann sicher ignoriert werden, wenn die Datei nicht geöffnet werden soll.
Apple-Plattformen
Um das Ereignis auf Apple-Plattformen auszulösen, muss die Anwendung so konfiguriert sein, dass sie dem Betriebssystem mitteilt, auf welche Art von Datei(en) sie reagieren soll.
Die folgende Info.plist Datei erklärt zum Beispiel, dass die Anwendung als Betrachter für PNG-Dateien fungieren kann:
<?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>Der folgende Schlüssel ist auch unter iOS erforderlich, damit die Anwendung als "Öffnen mit"-Aktion z. B. in der Anwendung "Dateien" angezeigt wird:
<key>UISupportsDocumentBrowser</key> <true/>
Die folgende Implementierung einer QApplication Unterklasse zeigt, wie man QFileOpenEvent behandelt, um die Datei zu öffnen, die z.B. auf dem Dock-Icon der Anwendung abgelegt wurde.
#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); } };
Beachten Sie, dass QFileOpenEvent::file() nicht garantiert der Name einer lokalen Datei ist, die mit QFile geöffnet werden kann. Der Inhalt des Strings hängt von der Quellanwendung ab.
© 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.