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
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.
| Konstante | Wert | Beschreibung |
|---|---|---|
QIODeviceBase::NotOpen | 0x0000 | Das Gerät ist nicht geöffnet. |
QIODeviceBase::ReadOnly | 0x0001 | Das Gerät ist zum Lesen geöffnet. |
QIODeviceBase::WriteOnly | 0x0002 | Das 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::ReadWrite | ReadOnly | WriteOnly | Das Gerät ist zum Lesen und Schreiben geöffnet. |
QIODeviceBase::Append | 0x0004 | Das Gerät wird im Anhängemodus geöffnet, sodass alle Daten an das Ende der Datei geschrieben werden. |
QIODeviceBase::Truncate | 0x0008 | Wenn möglich, wird das Gerät vor dem Öffnen gekürzt. Der gesamte bisherige Inhalt des Geräts geht verloren. |
QIODeviceBase::Text | 0x0010 | Beim Lesen werden die Zeilenendezeichen in „\n “ umgewandelt. Beim Schreiben werden die Zeilenendezeichen in die lokale Kodierung umgewandelt, beispielsweise „\r\n “ für Win32. |
QIODeviceBase::Unbuffered | 0x0020 | Jeder Puffer im Gerät wird umgangen. |
QIODeviceBase::NewOnly | 0x0040 | Ein 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::ExistingOnly | 0x0080 | Fü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.