QIODeviceBase 类

基类为 QIODevice 提供打开设备的模式描述标志。 更多...

头: #include < QIODevice >
CMake: find_package(Qt6 COMPONENTS Core REQUIRED)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core
继承者: QDataStream , QDebug , QIODevice ,和 QTextStream

公共类型

flags OpenMode
enum OpenModeFlag { NotOpen, ReadOnly, WriteOnly, ReadWrite, Append, …, ExistingOnly }

详细描述

成员类型文档编制

enum QIODeviceBase:: OpenModeFlag
flags QIODeviceBase:: OpenMode

此枚举用于 QIODevice::open () 以描述设备被打开的模式。它也被返回由 QIODevice::openMode ().

常量 描述
QIODeviceBase::NotOpen 0x0000 设备未打开。
QIODeviceBase::ReadOnly 0x0001 打开设备以供读取。
QIODeviceBase::WriteOnly 0x0002 打开设备以供写入。注意,对于文件系统子类 (如 QFile ),此模式隐含 Truncate (截取),除非组合 ReadOnly (只读)、Append (追加) 或 NewOnly。
QIODeviceBase::ReadWrite ReadOnly | WriteOnly 打开设备以供读写。
QIODeviceBase::Append 0x0004 以追加方式打开设备,以便将所有数据写入 EOF (文件末尾)。
QIODeviceBase::Truncate 0x0008 若可能,会截取设备在它被打开之前。设备的所有早期内容将丢失。
QIODeviceBase::Text 0x0010 当读取时,把行尾终止符转换成 \n。当写入时,把行尾终止符转换成本地编码 (例如:用于 Win32 的 \r\n)。
QIODeviceBase::Unbuffered 0x0020 绕过任何设备缓冲。
QIODeviceBase::NewOnly 0x0040 失败若要打开的文件已存在。创建并打开文件仅当它不存在时。操作系统保证您是创建并打开文件的唯一者。注意,此模式隐含 WriteOnly,且允许与 ReadWrite 组合。此标志目前仅影响 QFile 。其它类将来可以使用此标志,但在此之前,此标志可以用于任何类除了 QFile 可能导致未定义行为。(从 Qt 5.11 起)
QIODeviceBase::ExistingOnly 0x0080 失败若要打开的文件不存在。此标志必须与 ReadOnly、WriteOnly 或 ReadWrite 一起指定。注意,将此标志与 ReadOnly 一起单独使用是多余的,因为 ReadOnly 已失败当文件不存在时。此标志目前仅影响 QFile 。其它类将来可以使用此标志,但在此之前,此标志可以用于任何类除了 QFile 可能导致未定义行为。(从 Qt 5.11 起)

某些标志,譬如 Unbuffered and Truncate 没有意义,当用于某些子类时。其中某些限定由子类表示的设备类型所隐含。在其它情况下,限定可能是由于实现,或可能是通过底层平台施加;例如, QTcpSocket 不支持 Unbuffered 模式,且局限在本机 API 以阻止 QFile 从支持 Unbuffered 在 Windows。

OpenMode 类型是 typedef 对于 QFlags <OpenModeFlag>。它存储 OpenModeFlag 值的 OR 组合。