Obsolete Members for QWeakPointer

Die folgenden Mitglieder der Klasse QWeakPointer sind veraltet. Sie werden bereitgestellt, um alten Quellcode funktionsfähig zu halten. Wir raten dringend davon ab, sie in neuem Code zu verwenden.

Öffentliche Funktionen

(deprecated) QWeakPointer(const QObject *other)
(deprecated) T *data() const
(deprecated) QWeakPointer<T> &operator=(const QObject *other)

Dokumentation der Mitgliedsfunktionen

[deprecated] QWeakPointer::QWeakPointer(const QObject *other)

Diese Funktion ist veraltet. Wir raten dringend davon ab, sie in neuem Code zu verwenden.

Erzeugt einen QWeakPointer, der eine schwache Referenz direkt auf die QObject other enthält. Dieser Konstruktor ist nur verfügbar, wenn der Vorlagentyp T QObject ist oder von ihm abgeleitet wurde (andernfalls wird ein Kompilierungsfehler ausgegeben).

Sie können diesen Konstruktor mit jedem QObject verwenden, auch wenn sie nicht mit QSharedPointer erstellt wurden.

Beachten Sie, dass QWeakPointer, die auf diese Weise für beliebige QObjects erstellt wurden, normalerweise nicht nach QSharedPointer befördert werden können.

Siehe auch QSharedPointer und QPointer.

[deprecated] T *QWeakPointer::data() const

Diese Funktion ist veraltet. Wir raten dringend davon ab, sie in neuem Code zu verwenden.

Verwenden Sie stattdessen toStrongRef() und data() für den zurückgegebenen QSharedPointer.

Gibt den Wert des Zeigers zurück, der von dieser QWeakPointer verfolgt wird, ohne sicherzustellen, dass er nicht gelöscht werden kann. Um diese Garantie zu erhalten, verwenden Sie toStrongRef(), das ein QSharedPointer Objekt zurückgibt. Wenn diese Funktion feststellen kann, dass der Zeiger bereits gelöscht wurde, gibt sie nullptr zurück.

Es ist in Ordnung, den Wert des Zeigers zu ermitteln und diesen Wert selbst zu verwenden, z. B. in Debugging-Anweisungen:

    qDebug("Tracking %p", weakref.data());

Die Dereferenzierung des Zeigers ist jedoch nur dann erlaubt, wenn Sie mit externen Mitteln garantieren können, dass der Zeiger nicht gelöscht wird. Zum Beispiel, wenn Sie sicher sein können, dass weder ein anderer Thread ihn löschen kann, noch die Funktionen, die Sie möglicherweise aufrufen.

Wenn dies der Fall ist, ist der folgende Code gültig:

    // this pointer cannot be used in another thread
    // so other threads cannot delete it
    QWeakPointer<int> weakref = obtainReference();

    Object *obj = weakref.data();
    if (obj) {
        // if the pointer wasn't deleted yet, we know it can't get
        // deleted by our own code here nor the functions we call
        otherFunction(obj);
    }

Verwenden Sie diese Funktion mit Vorsicht.

Siehe auch isNull() und toStrongRef().

[deprecated] QWeakPointer<T> &QWeakPointer::operator=(const QObject *other)

Diese Funktion ist veraltet. Wir raten dringend davon ab, sie in neuem Code zu verwenden.

Macht dieses QWeakPointer zu einer schwachen Referenz direkt auf QObject other . Diese Funktion ist nur verfügbar, wenn der Vorlagentyp T QObject ist oder von ihm abgeleitet wird.

Siehe auch QPointer.

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