QIODeviceBase 类

提供描述设备打开模式标志的基础类 QIODevice更多信息...

头文件 #include <QIODevice>
CMakefind_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmakeQT += core
继承自

QDataStreamQDebugQIODeviceQTextStream

公共类型

flagsOpenMode
枚举OpenModeFlag { NotOpen, ReadOnly, WriteOnly, ReadWrite, Append, …, ExistingOnly }

详细描述

成员类型文档

枚举 QIODeviceBase::OpenModeFlag
标志 QIODeviceBase::OpenMode

此枚举与 QIODevice::open() 一起使用,以描述设备打开的模式。它还由 QIODevice::openMode() 返回。

常量描述
QIODeviceBase::NotOpen0x0000设备未打开。
QIODeviceBase::ReadOnly0x0001设备打开以供读取。
QIODeviceBase::WriteOnly0x0002设备打开以供写入。注意,对于文件系统子类(例如 QFile),此模式暗示截断(除非与 ReadOnly、Append 或 NewOnly 结合)。
QIODeviceBase::ReadWriteReadOnly | WriteOnly设备打开以供读写。
QIODeviceBase::Append0x0004设备以附加模式打开,以便所有数据都写入文件的末尾。
QIODeviceBase::Truncate0x0008如果在可能的情况下,设备在打开之前被截断。设备的所有早期内容都会丢失。
QIODeviceBase::Text0x0010在读取时,换行结束符被转换为 '\n'。在写入时,换行结束符转换为本地编码,例如 Win32 上的 '\r\n'。
QIODeviceBase::Unbuffered0x0020绕过设备中任何缓冲区。
QIODeviceBase::NewOnly0x0040如果要打开的文件已存在,则失败。只有在文件不存在时才创建和打开文件。操作系统保证你是唯一创建和打开文件的人。请注意,此模式隐含WriteOnly,并且可以与ReadWrite结合使用。此标志当前仅影响QFile。其他类可能会在未来使用此标志,但在此之前,使用除QFile之外的其他类的此标志可能会导致不可定义的行为。(自Qt 5.11起)
QIODeviceBase::ExistingOnly0x0080如果要打开的文件不存在,则失败。此标志必须与ReadOnly、WriteOnly或ReadWrite一起指定。请注意,仅使用ReadOnly与此标志是多余的,因为ReadOnly在文件不存在时已经失败。此标志当前仅影响QFile。其他类可能会在未来使用此标志,但在此之前,使用除QFile之外的其他类的此标志可能会导致不可定义的行为。(自Qt 5.11起)

某些标志,例如UnbufferedTruncate,在某些子类中使用时没有意义。其中一些限制是由子类表示的设备的类型隐含的。在其他情况下,限制可能是由于实现引起的,或者可能是由底层平台强加的;例如,QTcpSocket不支持Unbuffered模式,并且本地API的限制防止QFile在Windows上支持Unbuffered

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

© 2024 The Qt Company Ltd。包含在此的文档贡献是各自所有者的版权。本提供的文档是根据Free Software Foundation发布的GNU自由文档许可协议版本1.3的条款许可的。Qt及其相关标志是The Qt Company Ltd在芬兰以及世界上其他国家的商标。所有其他商标均为其各自所有者的财产。