Класс QIODeviceBase
Базовый класс для QIODevice, предоставляющий флаги, описывающие режим открытия устройства. Подробнее...
| Заголовок: | #include <QIODevice> |
| CMake: | find_package(Qt6 COMPONENTS Core REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Core) |
| qmake: | QT += core |
| Наследуется от: |
Типы публичного доступа
| флаги | OpenMode |
| Перечисление | OpenModeFlag { НеОткрыто, ТолькоЧтение, ТолькоЗапись, ЧтениеЗапись, Добавление, …, ТолькоСуществующий} |
Подробное описание
Документация по типам членов
перечисление QIODeviceBase::OpenModeFlagфлаги QIODeviceBase::OpenMode
Это перечисление используется с QIODevice::open() для описания режима открытия устройства. Оно также возвращается методом QIODevice::openMode().
| Константа | Значение | Описание |
|---|---|---|
QIODeviceBase::NotOpen |
0x0000 |
Устройство не открыто. |
QIODeviceBase::ReadOnly |
0x0001 |
Устройство открыто для чтения. |
QIODeviceBase::WriteOnly |
0x0002 |
Устройство открыто для записи. Обратите внимание, что для подклассов файловой системы (например, QFile) этот режим подразумевает обрезку, если не объединен с ТолькоЧтение, Добавление или Новый. |
QIODeviceBase::ReadWrite |
ReadOnly | WriteOnly |
Устройство открыто для чтения и записи. |
QIODeviceBase::Append |
0x0004 |
Устройство открыто в режиме добавления, поэтому все данные записываются в конец файла. |
QIODeviceBase::Truncate |
0x0008 |
Если возможно, устройство обрезается перед открытием. Все предыдущие данные устройства теряются. |
QIODeviceBase::Text |
0x0010 |
При чтении терминаторы конца строки переводятся в '\n'. При записи терминаторы конца строки переводятся в локальную кодировку, например, '\r\n' для Win32. |
QIODeviceBase::Unbuffered |
0x0020 |
Любой буфер в устройстве пропускается. |
QIODeviceBase::NewOnly |
0x0040 |
Ошибка, если открываемый файл уже существует. Создать и открыть файл только в том случае, если он не существует. Гарантируется, что операционная система гарантирует, что вы являетесь единственным создателем и открывающим файл. Обратите внимание, что этот режим подразумевает ТолькоЗапись, а объединение его с ЧтениеЗапись допускается. Этот флаг в настоящее время затрагивает только QFile. В будущем другие классы могут использовать этот флаг, но до тех пор использование этого флага с любыми классами, кроме QFile, может привести к неопределенному поведению. (с Qt 5.11) |
QIODeviceBase::ExistingOnly |
0x0080 |
Ошибка, если открываемый файл не существует. Этот флаг должен быть указан вместе с ТолькоЧтение, ТолькоЗапись или ЧтениеЗапись. Обратите внимание, что использование этого флага только с ТолькоЧтение избыточно, так как ТолькоЧтение уже завершается ошибкой при отсутствии файла. Этот флаг в настоящее время затрагивает только QFile. В будущем другие классы могут использовать этот флаг, но до тех пор использование этого флага с любыми классами, кроме QFile, может привести к неопределенному поведению. (с Qt 5.11) |
Некоторые флаги, такие как Unbuffered и Truncate, бессмысленны при использовании с некоторыми подклассами. Некоторые из этих ограничений подразумеваются типом устройства, представляемого подклассом. В других случаях ограничение может быть обусловлено реализацией или наложено основной платформой; например, QTcpSocket не поддерживает режим Unbuffered, а ограничения в базовом API препятствуют QFile от поддержки Unbuffered в Windows.
Тип OpenMode является псевдонимом для QFlags<OpenModeFlag>. Он хранит логическое ИЛИ сочетание значений OpenModeFlag.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.1/qiodevicebase.html