内容表

上一话题

QExposeEvent

下一话题

QFocusEvent

QFileOpenEvent

QFileOpenEvent class provides an event that will be sent when there is a request to open a file or a URL. 更多

Inheritance diagram of PySide2.QtGui.QFileOpenEvent

概要

函数

详细描述

文件打开事件会被发送给 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.

此事件仅用于通知请求的应用程序。它可以被安全地忽略。

注意

此类目前只支持 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);
    }
};
												
class QFileOpenEvent ( file )

QFileOpenEvent(url)

param url

QUrl

param file

unicode

Constructs a file open event for the given file .

Constructs a file open event for the given file .

PySide2.QtGui.QFileOpenEvent. file ( )
返回类型

unicode

返回正在被打开的文件。

PySide2.QtGui.QFileOpenEvent. openFile ( file , flags )
参数
  • file QFile

  • flags OpenMode

返回类型

bool

打开 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.

PySide2.QtGui.QFileOpenEvent. url ( )
返回类型

QUrl

返回正在被打开的 URL。