QIODeviceBase Class

Basisklasse für QIODevice, die Flags bereitstellt, die den Modus beschreiben, in dem ein Gerät geöffnet ist. Mehr...

Kopfzeile: #include <QIODevice>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core
Vererbt von:

QDataStream, QDebug, QIODevice, und QTextStream

Öffentliche Typen

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

Detaillierte Beschreibung

Dokumentation der Mitgliedstypen

enum QIODeviceBase::OpenModeFlag
flags QIODeviceBase::OpenMode

Dieses Enum wird mit QIODevice::open() verwendet, um den Modus zu beschreiben, in dem ein Gerät geöffnet wird. Sie wird auch von QIODevice::openMode() zurückgegeben.

KonstanteWertBeschreibung
QIODeviceBase::NotOpen0x0000Das Gerät ist nicht geöffnet.
QIODeviceBase::ReadOnly0x0001Das Gerät ist zum Lesen geöffnet.
QIODeviceBase::WriteOnly0x0002Das Gerät ist zum Schreiben geöffnet. Beachten Sie, dass dieser Modus für Dateisystem-Unterklassen (z. B. QFile) Truncate impliziert, sofern er nicht mit ReadOnly, Append oder NewOnly kombiniert wird.
QIODeviceBase::ReadWriteReadOnly | WriteOnlyDas Gerät ist zum Lesen und Schreiben geöffnet.
QIODeviceBase::Append0x0004Das Gerät wird im Append-Modus geöffnet, so dass alle Daten an das Ende der Datei geschrieben werden.
QIODeviceBase::Truncate0x0008Wenn möglich, wird das Gerät vor dem Öffnen abgeschnitten. Alle früheren Inhalte des Geräts gehen dabei verloren.
QIODeviceBase::Text0x0010Beim Lesen werden die Zeilenende-Terminatoren in "\n" übersetzt. Beim Schreiben werden die Zeilenenden in die lokale Kodierung übersetzt, zum Beispiel '\r\n' für Win32.
QIODeviceBase::Unbuffered0x0020Jeder Puffer im Gerät wird umgangen.
QIODeviceBase::NewOnly0x0040Schlägt fehl, wenn die zu öffnende Datei bereits existiert. Erstellen und öffnen Sie die Datei nur, wenn sie nicht existiert. Das Betriebssystem garantiert, dass Sie der Einzige sind, der die Datei erstellt und öffnet. Beachten Sie, dass dieser Modus WriteOnly impliziert und die Kombination mit ReadWrite erlaubt ist. Dieses Flag wirkt sich derzeit nur auf QFile aus. Andere Klassen könnten dieses Flag in der Zukunft verwenden, aber bis dahin kann die Verwendung dieses Flags mit anderen Klassen als QFile zu undefiniertem Verhalten führen. (seit Qt 5.11)
QIODeviceBase::ExistingOnly0x0080Schlägt fehl, wenn die zu öffnende Datei nicht existiert. Dieses Flag muss zusammen mit ReadOnly, WriteOnly, oder ReadWrite angegeben werden. Beachten Sie, dass die Verwendung dieses Flags mit ReadOnly allein redundant ist, da ReadOnly bereits fehlschlägt, wenn die Datei nicht existiert. Dieses Flag wirkt sich derzeit nur auf QFile aus. Andere Klassen könnten dieses Flag in der Zukunft verwenden, aber bis dahin kann die Verwendung dieses Flags mit anderen Klassen als QFile zu undefiniertem Verhalten führen. (seit Qt 5.11)

Bestimmte Flags, wie z.B. Unbuffered und Truncate, sind bedeutungslos, wenn sie mit einigen Unterklassen verwendet werden. Einige dieser Einschränkungen werden durch den Gerätetyp impliziert, der durch eine Unterklasse repräsentiert wird. In anderen Fällen kann die Einschränkung auf die Implementierung zurückzuführen sein oder von der zugrundeliegenden Plattform auferlegt werden; zum Beispiel unterstützt QTcpSocket nicht den Unbuffered Modus, und Einschränkungen in der nativen API verhindern, dass QFile Unbuffered unter Windows unterstützt.

Der OpenMode-Typ ist ein Typedef für QFlags<OpenModeFlag>. Er speichert eine OR-Kombination von OpenModeFlag-Werten.

© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.