Q3DSurface, QAbstract3DAxis::setLabels()

Alles rund um die Programmierung mit Qt
Antworten
PRoth
Beiträge: 3
Registriert: 10. Oktober 2017 17:00

Q3DSurface, QAbstract3DAxis::setLabels()

Beitrag von PRoth »

Hallo zusammen,

ich kann leider die Achsenbeschriftung nicht umbenennen (siehe Codebeispiel: setLabels()).

In der Doku von Qt steht:
QAbstract3DAxis::labels https://doc.qt.io/qt-5/qabstract3daxis.html#labels-prop
This property holds the labels for the axis.
Note: Setting this property for QValue3DAxis does nothing, as it generates labels automatically.

Wie kann ich die automatische Generierung ausschalten bzw. eigene Achsennamen vergeben?

Code: Alles auswählen

#include <QtDataVisualization>

using namespace QtDataVisualization;

int main(int argc, char **argv)
{
	 QGuiApplication app(argc, argv);

	 Q3DSurface surface;
	 surface.setFlags(surface.flags() ^ Qt::FramelessWindowHint);
	 QSurfaceDataArray *data = new QSurfaceDataArray;
	 QSurfaceDataRow *dataRow1 = new QSurfaceDataRow;
	 QSurfaceDataRow *dataRow2 = new QSurfaceDataRow;

	 // Punkte einer Pyramide
	 *dataRow1 << QVector3D(0,0,0) << QVector3D(1,0,0);
	 *dataRow2 << QVector3D(0,0,1) << QVector3D(1,1,1);

	 *data << dataRow1 << dataRow2;

	 QSurface3DSeries *series = new QSurface3DSeries;
	 series->dataProxy()->resetArray(data);
	 series->setDrawMode(QSurface3DSeries::DrawSurfaceAndWireframe);
	 surface.addSeries(series);
	 surface.show();

	 QStringList yLab; //QValue3DAxisFormatter
	 yLab << "a" << "b" << "c" << "d" << "e" << "f";
	 surface.axisY()->setLabels(yLab);

	 return app.exec();
}
Antworten