Auf dieser Seite

QIODeviceBase Class

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

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

QDataStream, „ QDebug “, „ QIODevice “ sowie QTextStream

Öffentliche Typen

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

Geschützte Funktionen

Detaillierte Beschreibung

Dokumentation zum Mitgliedstyp

enum QIODeviceBase::OpenModeFlag
flags QIODeviceBase::OpenMode

Diese Enumeration wird zusammen mit ` QIODevice::open()` verwendet, um den Modus zu beschreiben, in dem ein Gerät geöffnet wird. Sie wird außerdem 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 bei Dateisystem-Unterklassen (z. B. QFile) „Truncate“ bedeutet, 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 Anhängemodus geöffnet, sodass alle Daten an das Ende der Datei geschrieben werden.
QIODeviceBase::Truncate0x0008Wenn möglich, wird das Gerät vor dem Öffnen gekürzt. Der gesamte bisherige Inhalt des Geräts geht verloren.
QIODeviceBase::Text0x0010Beim Lesen werden die Zeilenendezeichen in „\n “ umgewandelt. Beim Schreiben werden die Zeilenendezeichen in die lokale Kodierung umgewandelt, beispielsweise „\r\n “ für Win32.
QIODeviceBase::Unbuffered0x0020Jeder Puffer im Gerät wird umgangen.
QIODeviceBase::NewOnly0x0040Ein Fehler tritt auf, wenn die zu öffnende Datei bereits existiert. Die Datei wird nur angelegt und geöffnet, wenn sie nicht existiert. Das Betriebssystem garantiert, dass Sie der Einzige sind, der die Datei anlegt und öffnet. Beachten Sie, dass dieser Modus „WriteOnly“ impliziert und eine Kombination mit „ReadWrite“ zulässig ist. Dieses Flag wirkt sich derzeit nur auf „ QFile “ aus. Andere Klassen könnten dieses Flag in Zukunft verwenden, doch bis dahin kann die Verwendung dieses Flags mit anderen Klassen als „ QFile “ zu undefiniertem Verhalten führen. (seit Qt 5.11)
QIODeviceBase::ExistingOnly0x0080Führt zu einem Fehler, 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 zusammen mit „ReadOnly“ allein überflüssig 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 Zukunft verwenden, doch bis dahin kann die Verwendung dieses Flags mit anderen Klassen als „ QFile “ zu undefiniertem Verhalten führen. (seit Qt 5.11)

Bestimmte Flags, wie beispielsweise „ Unbuffered “ und „ Truncate “, sind bei Verwendung mit einigen Unterklassen bedeutungslos. Einige dieser Einschränkungen ergeben sich aus dem Gerätetyp, den eine Unterklasse repräsentiert. In anderen Fällen kann die Einschränkung auf die Implementierung zurückzuführen sein oder von der zugrunde liegenden Plattform vorgegeben werden; beispielsweise unterstützt „ QTcpSocket “ den Modus „ Unbuffered “ nicht, und Einschränkungen in der nativen API verhindern, dass „ QFile “ unter Windows den Modus „ Unbuffered “ unterstützt.

Der Typ „OpenMode“ ist ein „typedef“ für „QFlags<OpenModeFlag>“. Er speichert eine ODER-Kombination von „OpenModeFlag“-Werten.

Dokumentation der Mitgliedsfunktionen

[constexpr noexcept protected default] QIODeviceBase::~QIODeviceBase()

Löscht die Instanz von „ QIODeviceBase “.

© 2026 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.