QIODeviceBase Class

Base class for QIODevice that provides flags describing the mode in which a device is opened. 更多...

頭: #include < QIODevice >
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
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 組閤。