如何在 Qt 中更改图表轴的标题?
How to change the title of a chart axis in Qt?
我正在尝试开发一个图表来显示每个月的每一天的销售数量,它可以工作,但我无法更改 x 轴每个位置的标题。这是我试图改变的方式:
void Relatorios::vendasMensais(QLineSeries *series, QChart *chart, int mes, bool anoAtual, int ano)
{
QSqlDatabase db = Database::database();
QSqlQuery q(db);
q.prepare("SELECT COUNT(id), feita_em FROM vendas WHERE YEAR(feita_em) = :ano AND MONTH(feita_em) = :mes GROUP BY DAY(feita_em)");
if(anoAtual)
q.bindValue(":ano", QDate::currentDate().year());
else
q.bindValue(":ano", ano);
q.bindValue(":mes", mes);
if(!q.exec()){
qCritical() << "Falha ao realizar a consulta: " << q.lastError().text();
return;
}
QCategoryAxis *xAxis = new QCategoryAxis();
int i = 1;
while(q.next()){
QDateTime data = QDateTime::fromString(q.value(1).toString(), "yyyy-MM-ddThh:mm:ss.z");
xAxis->append(QString::number(data.date().day()), data.date().day());
series->append(data.date().day(), q.value(0).toInt());
}
chart->addSeries(series);
chart->legend()->hide();
chart->createDefaultAxes();
chart->axes(Qt::Horizontal).append(xAxis);
chart->setTitle("Vendas do mês");
}
但目前不更改标题
不要使用createDefaultAxes()
。创建一个价值轴 für y,然后使用 addAxis()
命令添加价值轴和类别轴。
您对 axes()
的操作不会 改变图表。它仅处理返回的列表,该列表是图表中使用的轴的副本。
一般来说,对于 Qt,您不能使用 getter 直接操作属性。为此,您必须明确地调用 setter。
我正在尝试开发一个图表来显示每个月的每一天的销售数量,它可以工作,但我无法更改 x 轴每个位置的标题。这是我试图改变的方式:
void Relatorios::vendasMensais(QLineSeries *series, QChart *chart, int mes, bool anoAtual, int ano)
{
QSqlDatabase db = Database::database();
QSqlQuery q(db);
q.prepare("SELECT COUNT(id), feita_em FROM vendas WHERE YEAR(feita_em) = :ano AND MONTH(feita_em) = :mes GROUP BY DAY(feita_em)");
if(anoAtual)
q.bindValue(":ano", QDate::currentDate().year());
else
q.bindValue(":ano", ano);
q.bindValue(":mes", mes);
if(!q.exec()){
qCritical() << "Falha ao realizar a consulta: " << q.lastError().text();
return;
}
QCategoryAxis *xAxis = new QCategoryAxis();
int i = 1;
while(q.next()){
QDateTime data = QDateTime::fromString(q.value(1).toString(), "yyyy-MM-ddThh:mm:ss.z");
xAxis->append(QString::number(data.date().day()), data.date().day());
series->append(data.date().day(), q.value(0).toInt());
}
chart->addSeries(series);
chart->legend()->hide();
chart->createDefaultAxes();
chart->axes(Qt::Horizontal).append(xAxis);
chart->setTitle("Vendas do mês");
}
但目前不更改标题
不要使用createDefaultAxes()
。创建一个价值轴 für y,然后使用 addAxis()
命令添加价值轴和类别轴。
您对 axes()
的操作不会 改变图表。它仅处理返回的列表,该列表是图表中使用的轴的副本。
一般来说,对于 Qt,您不能使用 getter 直接操作属性。为此,您必须明确地调用 setter。