QFileOpenEvent 類

QFileOpenEvent 類提供當有打開文件或 URL 請求時將發送的事件。 更多...

頭: #include <QFileOpenEvent>
qmake: QT += gui
繼承: QEvent

公共函數

QString file () const
bool openFile (QFile & file , QIODevice::OpenMode flags ) const
QUrl url () const

詳細描述

文件打開事件會被發送給 QApplication::instance () 當操作係統請求文件或 URL 應被打開時。這是高級事件,可能由不同的用戶動作 (取決於用戶的桌麵環境) 導緻。例如:在 macOS 的 Finder 中雙擊文件圖標。

此事件僅用於通知請求的應用程序。它可以被安全地忽略。

注意: 此類目前隻支持 macOS。

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