Как правило, вы можете изменить цвет линии сетки с помощью следующего кода:
#include <QApplication>
#include <QtDataVisualization/Q3DScatter>
#include <QtDataVisualization/Q3DLight>
#include <QtDataVisualization/Q3DTheme>
#include <QDebug>
#include <QTimer>
int main(int argc, char* argv[])
{
QApplication a(argc, argv);
auto scatter = new QtDataVisualization::Q3DScatter;
auto widget=QWidget::createWindowContainer(scatter);
widget->show();
scatter->activeTheme()->setType(QtDataVisualization::Q3DTheme::ThemeQt);
scatter->activeTheme()->setGridLineColor(QColor("red"));
auto light = scatter->scene()->activeLight();
auto camera = scatter->scene()->activeCamera();
int counter = 0;
QTimer timer;
timer.start(1 / 60);
QObject::connect(&timer, &QTimer::timeout, [&]() {
camera->setXRotation(counter++/60);
});
return a.exec();
}
Тем не менее, кажется, что не влияет на то, как отображаются линии сетки.Я думаю, что это относится к освещению трехмерной сцены и, конечно, к положению камеры.
Моя небольшая примерная программа вращает камеру сцены, и, следовательно, также изменяется освещение линий сетки.
Я думаю, что здесь мало что можно сделать, поскольку интерфейсы не позволяют изменять шейдерный код линий сетки.