QIODeviceBase 类
提供描述设备打开模式标志的基础类 QIODevice。 更多信息...
头文件 | #include <QIODevice> |
CMake | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
qmake | QT += core |
继承自 |
公共类型
flags | OpenMode |
枚举 | OpenModeFlag { NotOpen, ReadOnly, WriteOnly, ReadWrite, Append, …, ExistingOnly } |
成员类型文档
枚举 QIODeviceBase::OpenModeFlag
标志 QIODeviceBase::OpenMode
此枚举与 QIODevice::open() 一起使用,以描述设备打开的模式。它还由 QIODevice::openMode() 返回。
常量 | 值 | 描述 |
---|---|---|
QIODeviceBase::NotOpen | 0x0000 | 设备未打开。 |
QIODeviceBase::ReadOnly | 0x0001 | 设备打开以供读取。 |
QIODeviceBase::WriteOnly | 0x0002 | 设备打开以供写入。注意,对于文件系统子类(例如 QFile),此模式暗示截断(除非与 ReadOnly、Append 或 NewOnly 结合)。 |
QIODeviceBase::ReadWrite | ReadOnly | WriteOnly | 设备打开以供读写。 |
QIODeviceBase::Append | 0x0004 | 设备以附加模式打开,以便所有数据都写入文件的末尾。 |
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
和Truncate
,在某些子类中使用时没有意义。其中一些限制是由子类表示的设备的类型隐含的。在其他情况下,限制可能是由于实现引起的,或者可能是由底层平台强加的;例如,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在芬兰以及世界上其他国家的商标。所有其他商标均为其各自所有者的财产。