qt_policy

Ändern Sie das Standardverhalten der CMake-API von Qt.

Der Befehl ist in der Core Komponente des Qt6 Pakets definiert, das so geladen werden kann:

find_package(Qt6 REQUIRED COMPONENTS Core)

Dieses Kommando wurde in Qt 6.5 eingeführt.

Synopse

qt_policy(
    [SET <policy_name> behavior]
    [GET <policy_name> <variable>]
)

Wenn versionslose Befehle deaktiviert sind, verwenden Sie stattdessen qt6_policy(). Es unterstützt den gleichen Satz an Argumenten wie dieser Befehl.

Beschreibung

Dieser Befehl hat zwei Modi:

  • Wenn das Schlüsselwort SET verwendet wird, kann dieser Befehl verwendet werden, um sich für Verhaltensänderungen in der CMake-API von Qt zu entscheiden, oder um sie explizit abzulehnen.
  • Wenn das Schlüsselwort GET verwendet wird, wird <variable> auf das aktuelle Verhalten für die Richtlinie gesetzt, d.h. OLD oder NEW.

<policy_name> muss der Name einer der Qt CMake Richtlinien sein. Richtliniennamen haben die Form QTP<NNNN>, wobei <NNNN> eine ganze Zahl ist, die den Index der Richtlinie angibt. Die Verwendung eines ungültigen Policy-Namens führt zu einem Fehler.

Code, der ältere Qt-Versionen unterstützt, kann das Vorhandensein einer Richtlinie überprüfen, indem er den Wert der Variable QT_KNOWN_POLICY_<policy_name> überprüft, bevor er den Wert von <policy_name> erhält oder dessen Verhalten einstellt.

if(QT_KNOWN_POLICY_<policy_name>)
    qt_policy(SET <policy_name> NEW)
endif()

Sie können behavior auf eine der folgenden Optionen setzen:

  • NEW um sich für das neue Verhalten zu entscheiden
  • OLD um es ausdrücklich abzulehnen

Hinweis: Das Verhalten OLD einer Richtlinie ist veraltet und wird möglicherweise in Zukunft entfernt werden.

Siehe auch qt_standard_project_setup.

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