Sur cette page

Qt3DRender::QParameter Class

class Qt3DRender::QParameter

Permet de stocker une paire nom-valeur. Cela correspond à une variable uniforme de shader. En savoir plus...

En-tête : #include <Qt3DRender/QParameter>
CMake : find_package(Qt6 REQUIRED COMPONENTS 3drender)
target_link_libraries(mytarget PRIVATE Qt6::3drender)
qmake : QT += 3drender
En QML : Parameter
Hérite de : Qt3DCore::QNode
Statut : Obsolète

Cette classe est obsolète. Nous déconseillons fortement de l'utiliser dans du nouveau code.

Propriétés

Fonctions publiques

QParameter(Qt3DCore::QNode *parent = nullptr)
QParameter(const QString &name, Qt3DRender::QAbstractTexture *texture, Qt3DCore::QNode *parent = nullptr)
QParameter(const QString &name, const QVariant &value, Qt3DCore::QNode *parent = nullptr)
QString name() const
QVariant value() const

Emplacements publics

void setName(const QString &name)
void setValue(const QVariant &dv)

Signaux

void nameChanged(const QString &name)
void valueChanged(const QVariant &value)

Description détaillée

Un QParameter peut être référencé par un QRenderPass, QTechnique, QEffect, QMaterial, QTechniqueFilter, QRenderPassFilter. Lors de l’exécution, selon le shader sélectionné pour une étape donnée du rendu, la valeur contenue dans un QParameter sera convertie et chargée si le shader contient un uniforme dont le nom correspond à celui du QParameter.

QParameter *param = new QParameter();
param->setName(QStringLiteral("diffuseColor"));
param->setValue(QColor::fromRgbF(0.0f, 0.0f, 1.0f, 1.0f));

// Alternatively you can create and set a QParameter this way
QParameter *param2 = new QParameter(QStringLiteral("diffuseColor"), QColor::fromRgbF(0.0f, 0.0f, 1.0f, 1.0f));

// Such QParameters will work with the following GLSL uniform shader declarations
// uniform vec4 diffuseColor;
// uniform vec3 diffuseColor;
// uniform vec2 diffuseColor;
// uniform float diffuseColor;

Remarque : il convient de veiller à ce que la valeur contenue dans un QParameter puisse effectivement être convertie en ce qu’attend réellement l’uniform. Attribuer une valeur stockée sous forme d’entier (int) alors que l’uniform du shader est de type flottant (float) pourrait entraîner des comportements indéfini.

Remarque : lorsque l’uniform cible est un tableau, le nom doit être celui de l’uniform suivi de [0].

Remarque : le nœudQParameter ne peut pas être désactivé.

QParameter *param = new QParameter();
QVariantList values = QVariantList() << 0.0f << 1.0f << 2.0f << 3.0f << 4.0f << 883.0f << 1340.0f << 1584.0f;

param->setName(QStringLiteral("diffuseValues[0]"));
param->setValue(values);

// Matching GLSL shader uniform  declaration
// uniform float diffuseValues[8];

En ce qui concerne la prise en charge des textures, la valeur de QParameter doit être définie sur la sous-classe appropriée de ` QAbstractTexture ` correspondant au type d'échantillonneur de l'uniforme du shader.

QTexture2D *texture = new QTexture2D();
...
QParameter *param = new QParameter();
param->setName(QStringLiteral("diffuseTexture"));
param->setValue(QVariant::fromValue(texture));

// Works with the following GLSL uniform shader declaration
// uniform sampler2D diffuseTexture

Voir également QAbstractTexture.

Documentation sur les propriétés

name : QString

Spécifie le nom du paramètre

Fonctions d'accès :

QString name() const
void setName(const QString &name)

Signal de notification :

void nameChanged(const QString &name)

value : QVariant

Spécifie la valeur du paramètre

Fonctions d’accès :

QVariant value() const
void setValue(const QVariant &dv)

Signal de notification :

void valueChanged(const QVariant &value)

Documentation des fonctions membres

[explicit] QParameter::QParameter(Qt3DCore::QNode *parent = nullptr)

Crée un nouveau QParameter avec l'parent spécifiée.

[explicit] QParameter::QParameter(const QString &name, Qt3DRender::QAbstractTexture *texture, Qt3DCore::QNode *parent = nullptr)

Crée un nouveau QParameter avec l'parent spécifiée name et récupère sa valeur à partir de texture.

[explicit] QParameter::QParameter(const QString &name, const QVariant &value, Qt3DCore::QNode *parent = nullptr)

Crée un nouveau QParameter avec les paramètres spécifiés : parent, name et value.

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