Auf dieser Seite

Qt3DRender::QParameter Class

class Qt3DRender::QParameter

Bietet Speicherplatz für ein Name-Wert-Paar. Dies entspricht einer Shader-Uniform. Mehr...

Header: #include <Qt3DRender/QParameter>
CMake: find_package(Qt6 REQUIRED COMPONENTS 3drender)
target_link_libraries(mytarget PRIVATE Qt6::3drender)
qmake: QT += 3drender
In QML: Parameter
Erbt von: Qt3DCore::QNode
Status: Veraltet

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

Eigenschaften

Öffentliche Funktionen

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

Öffentliche Slots

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

Signale

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

Detaillierte Beschreibung

Auf einen QParameter kann über QRenderPass, QTechnique, QEffect, QMaterial, QTechniqueFilter oder QRenderPassFilter verwiesen werden. Zur Laufzeit wird der in einem QParameter enthaltene Wert – je nachdem, welcher Shader für einen bestimmten Schritt des Renderings ausgewählt ist – konvertiert und hochgeladen, sofern der Shader ein Uniform enthält, dessen Name mit dem des QParameters übereinstimmt.

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;

Hinweis: Es muss darauf geachtet werden, dass der von einem QParameter umschlossene Wert tatsächlich in das Format konvertiert werden kann, das das eigentliche Uniform erwartet. Die Übergabe eines als int gespeicherten Werts, wenn das tatsächliche Shader-Uniform vom Typ float ist, kann zu undefiniertem Verhalten führen.

Hinweis: Wenn es sich bei der Ziel-Uniform um ein Array handelt, sollte der Name der Uniform mit dem angehängten [0] lauten.

Hinweis: DerQParameter -Knoten kann nicht deaktiviert werden.

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];

Was die Texturunterstützung betrifft, sollte der QParameter-Wert auf die entsprechende Unterklasse von „ QAbstractTexture “ gesetzt werden, die dem Sampler-Typ der Shader-Uniform entspricht.

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

Siehe auch „ QAbstractTexture “.

Dokumentation zu den Eigenschaften

name : QString

Gibt den Namen des Parameters an

Zugriffsfunktionen:

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

Benachrichtigungssignal:

void nameChanged(const QString &name)

value : QVariant

Legt den Wert des Parameters fest

Zugriffsfunktionen:

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

Benachrichtigungssignal:

void valueChanged(const QVariant &value)

Dokumentation der Mitgliedsfunktionen

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

Erstellt einen neuen QParameter mit dem angegebenen „ parent “.

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

Erstellt einen neuen QParameter mit den angegebenen Werten für „ parent “ und „ name “ und übernimmt dessen Wert aus „ texture “.

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

Erstellt einen neuen QParameter mit den angegebenen Werten „ parent “, „ name “ und „ 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.