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
oderNEW
.
<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 entscheidenOLD
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.