QFileOpenEvent 类

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

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

成员函数文档编制

QString QFileOpenEvent:: file () const

返回正在被打开的文件。

bool QFileOpenEvent:: openFile ( QFile & file , QIODevice::OpenMode flags ) const

打开 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 引入。

QUrl QFileOpenEvent:: url () const

返回正在被打开的 URL。

该函数在 Qt 4.6 引入。