Класс QFileOpenEvent
Класс QFileOpenEvent предоставляет событие, которое будет отправлено при запросе открытия файла или URL. Подробнее...
| Заголовок: | #include <QFileOpenEvent> |
| qmake: | QT += gui |
| Наследует: | QEvent |
Открытые функции
| QString | file() const |
| bool | openFile(QFile &file, QIODevice::OpenMode flags) const |
| QUrl | url() const |
- 7 открытых функций, унаследованных от QEvent
Дополнительные унаследованные члены
- 1 свойство, унаследованное от QEvent
- 1 открытая переменная, унаследованная от QEvent
- 1 статическая открытая переменная, унаследованная от QEvent
- 2 защищённые переменные, унаследованные от 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/archives/qt-5.11/qfileopenevent.html