Spec-Zone.ru › Qt 5.12

Класс QFileOpenEvent

Класс QFileOpenEvent предоставляет событие, которое будет отправлено при запросе открытия файла или URL-адреса. Подробнее...

Заголовок: #include <QFileOpenEvent>
qmake: QT += gui
Наследует: QEvent
  • Список всех членов, включая унаследованные

Открытые функции

QString file() const
bool openFile(QFile &file, QIODevice::OpenMode flags) const
QUrl url() const
  • 6 открытых функций унаследованы от QEvent

Дополнительные унаследованные члены

  • 1 свойство унаследовано от QEvent
  • 1 статический открытый член унаследован от QEvent

Подробное описание

Класс QFileOpenEvent предоставляет событие, которое будет отправлено при запросе открытия файла или URL-адреса.

События открытия файлов будут отправлены в QApplication::instance() при запросе операционной системы открыть файл или URL. Это событие высокого уровня, которое может быть вызвано различными действиями пользователя в зависимости от среды рабочего стола; например, двойной щелчок на значке файла в Finder на macOS.

Это событие используется только для уведомления приложения о запросе. Его можно безопасно проигнорировать.

Примечание: Этот класс в настоящее время поддерживается только для macOS.

Пример для macOS

Для того, чтобы вызвать событие на macOS, приложение должно быть настроено для информирования ОС о типе файлов, на которые оно должно реагировать.

Например, следующий Info.plist файл объявляет, что приложение может действовать как просмотрщик для файлов с расширением PNG:

<?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>

Следующая реализация подкласса QApplication выводит путь к файлу, который, например, был передан в значок приложения в Dock.

#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 в этом событии в режиме, указанном flags. Возвращает true при успехе; в противном случае возвращает false.

Это необходимо, так как некоторые файлы нельзя открыть по имени, но требуются определённые сведения, хранящиеся в этом событии.

Функция была добавлена в Qt 4.8.

QUrl QFileOpenEvent::url() const

Возвращает URL-адрес, который открывается.

Функция была добавлена в Qt 4.6.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.12/qfileopenevent.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API