Spec-Zone.ru › Qt 5.6

Класс 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 выводит путь к файлу, который, например, был передан в область задач приложения.

#include <QApplication>
#include <QFileOpenEvent>
#include <QtDebug>

class MyApplication : public QApplication
{
public:
    MyApplication(int &argc, char **argv)
        : QApplication(argc, argv)
    {
    }

    bool event(QEvent *event)
    {
        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/archives/qt-5.6/qfileopenevent.html

Spec-Zone.ru

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