gpt4 book ai didi

c++ - Q3DBars 在垂直墙上有网格,怎么样?

转载 作者:行者123 更新时间:2023-12-02 03:12:29 25 4
gpt4 key购买 nike

这是剧情

enter image description here

这是代码

.pro

QT      += core gui widgets datavisualization
TEMPLATE = app
SOURCES += main.cpp mainwindow.cpp
HEADERS += mainwindow.h

main.cpp

#include "mainwindow.cpp"
#include <QApplication>

int main(int argc, char *argv[]) {
QApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();
}

主窗口.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>

class MainWindow : public QMainWindow {
Q_OBJECT
public:
MainWindow(QWidget *parent = 0);
~MainWindow();
};

#endif // MAINWINDOW_H

主窗口.cpp

#include "mainwindow.h"
#include <QMainWindow>

#include <QtDataVisualization/Q3DBars>
using namespace QtDataVisualization;

MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) {
resize(800,600);
Q3DBars *graph = new Q3DBars;
setCentralWidget(QWidget::createWindowContainer(graph));
graph->scene()->activeCamera()->setCameraPosition(30,30);
graph->setBarSpacing(QSizeF(1,3));
QBar3DSeries *series = new QBar3DSeries;
graph->addSeries(series);
QStringList row_labels{"0", "", "20", "", "40"};
QStringList column_labels{"0", "", "20", "", "40"};
graph->rowAxis()->setRange(0, row_labels.count()-1);
graph->columnAxis()->setRange(0, column_labels.count()-1);
series->dataProxy()->setRowLabels(row_labels);
series->dataProxy()->setColumnLabels(column_labels);

// graph->activeTheme()->setGridEnabled(false);
}

MainWindow::~MainWindow(){}

现在回答问题:

垂直墙上可以有网格线吗?我的意思是图片中的垂直线,与地板中的垂直线相同。

最佳答案

enter image description here

也许Q3DBars不可能,但Q3DScatter可能:

#include "mainwindow.h"

#include <Q3DScatter>

using namespace QtDataVisualization;

MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) {

auto chart = new Q3DScatter;
setCentralWidget(QWidget::createWindowContainer(chart));

auto series = new QScatter3DSeries;
chart->addSeries(series);

chart->axisX()->setRange(0,50);
chart->axisY()->setRange(0,50);
chart->axisZ()->setRange(0,50);

chart->setShadowQuality(QAbstract3DGraph::ShadowQualityNone);

auto add_bar = [](int x, int y, int z){
auto bar = new QScatterDataArray;;
while(z-- > 0)
*bar << QVector3D(y, z, x);
return bar;
};

QList<QScatterDataArray*> row;
for(int i = 0; i < 5; i++)
row << add_bar(0, i*10, 20);

foreach (auto bar, row)
series->dataProxy()->addItems(*bar);
}

MainWindow::~MainWindow() {}

关于c++ - Q3DBars 在垂直墙上有网格,怎么样?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57595972/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com