The QFileOpenEvent class provides an event that will be sent when there is a request to open a file or a URL. 更多...
头: | #include <QFileOpenEvent> |
qmake: | QT += gui |
继承: | QEvent |
QString | file () const |
bool | openFile (QFile & file , QIODevice::OpenMode flags ) const |
QUrl | url () const |
The QFileOpenEvent class provides an event that will be sent when there is a request to open a file or a URL.
File open events will be sent to the QApplication::instance() when the operating system requests that a file or URL should be opened. This is a high-level event that can be caused by different user actions depending on the user's desktop environment; for example, double clicking on an file icon in the Finder on macOS .
此事件仅用于通知请求的应用程序。它可以被安全地忽略。
注意: This class is currently supported for macOS 仅。
In order to trigger the event on macOS , the application must be configured to let the OS know what kind of file(s) it should react on.
例如,以下
Info.plist
file declares that the application can act as a viewer for files with a PNG extension:
<?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>CFBundleTypeExtensions</key> <array> <string>png</string> </array> <key>CFBundleTypeRole</key> <string>Viewer</string> </dict> </array> </dict> </plist>
The following implementation of a QApplication subclass prints the path to the file that was, for example, dropped on the Dock icon of the application.
#include <QApplication> #include <QFileOpenEvent> #include <QtDebug> 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); qDebug() << "Open file" << openEvent->file(); } return QApplication::event(event); } };
返回正在被打开的文件。
打开
QFile
在
file
referenced by this event in the mode specified by
flags
。返回
true
若成功;否则返回
false
.
This is necessary as some files cannot be opened by name, but require specific information stored in this event.
该函数在 Qt 4.8 引入。
返回正在被打开的 URL。
该函数在 Qt 4.6 引入。