基类为 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 } |
此枚举用于 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 组合。