Как изменить заголовок оси диаграммы в Qt? - PullRequest
1 голос
/ 20 июня 2019

Я пытаюсь разработать график, который показывает количество продаж каждого дня месяца, это работает, но я не могу изменить заголовок каждой позиции оси 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");

}

Но в настоящее время не меняет заголовок

1 Ответ

0 голосов
/ 21 июня 2019

Не использовать createDefaultAxes(). Создайте ось значения для y, затем добавьте ось значения и ось категории, используя команды addAxis().

Ваши манипуляции на axes() не не изменяют график. Он только манипулирует возвращаемым списком, который является копией осей, используемых в диаграмме.

В общем случае с Qt вы не можете использовать геттеры для прямого манипулирования свойствами. Для этого вам нужно явно вызвать сеттер.

...