c++ - 具有稀疏网格的 Q3DBars,可能吗?
问题描述
在下面的图中,列的标签变得稀疏。如何使网格线稀疏?
这是代码
.pro
QT += core gui widgets datavisualization
TEMPLATE = app
SOURCES += main.cpp
主文件
#include <QtDataVisualization>
using namespace QtDataVisualization;
int main(int argc, char **argv)
{
QGuiApplication app(argc, argv);
Q3DBars bars;
bars.setFlags(bars.flags() ^ Qt::FramelessWindowHint);
bars.resize(800,600);
bars.scene()->activeCamera()->setCameraPosition(30,30);
bars.setShadowQuality(QAbstract3DGraph::ShadowQualityNone);
bars.rowAxis()->setTitle("Rows");
bars.rowAxis()->setTitleVisible(true);
bars.columnAxis()->setTitle("Columns");
bars.columnAxis()->setTitleVisible(true);
QStringList row_labels{"0", "", "20", "", "40"};
QStringList column_labels;
int columns = 40;
for (int i = 0; i < columns; i++)
if (i % 10)
column_labels << "";
else
column_labels << QString::number(i);
bars.rowAxis()->setRange(0, row_labels.count()-1);
bars.columnAxis()->setRange(0, column_labels.count()-1);
bars.setBarSpacing(QSizeF(1,columns));
QBar3DSeries *series = new QBar3DSeries;
series->dataProxy()->setRowLabels(row_labels);
series->dataProxy()->setColumnLabels(column_labels);
QBarDataRow *data = new QBarDataRow;
for (int i = 0; i < columns; i++)
*data << i;
series->dataProxy()->addRow(data);
bars.addSeries(series);
// bars.activeTheme()->setGridEnabled(false);
bars.show();
return app.exec();
}
解决方案
推荐阅读
- php - GROUP BY 一列但不是同一表中的另一列 - SQL
- kubernetes - 在 Helm Chart 中,如何阻止升级,直到其中的部署完成?
- java - 文本视图上下文菜单
- php - 连接个人专区后出现白页
- firebase - 未知:部署 firebase 函数时的一般错误
- python-3.x - 如何根据另一个数据帧的条件匹配在数据帧中创建新列?
- r - 使用非等连接来定义一个数据帧中的一组数据,这些数据与 R 中的另一个数据帧在一定范围内
- javascript - 为什么字符串模板不通过 CI
- function - 带有 for 循环的函数 - 如何在 vb 中返回 | UFT
- reactjs - 无法更新组件的状态