Класс 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 является typedef для QFlags<OpenModeFlag>. Он хранит логическое ИЛИ сочетание значений OpenModeFlag.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.2/qiodevicebase.html