Эти проблемы обычно возникают из-за того, что вы конфигурируете свой проект с более старой версией qmake, часто для Qt4.
QtChart доступен только в современных версиях Qt. Если вы используете QtCreator, это шаги для обновления вашей системы сборки:
Перейти к:
Tools -> Options...
После этого перейдите на:
Kits -> Qt Versions
Обычно вы должны видеть разные версии Qt, которые установлены. Убедитесь, что вы видите современную версию Qt, QtCharts 2.0 был выпущен с Qt 5.6.0 , так что это ваша минимальная версия.
Теперь обновите свои комплекты. Если вы компилируете приложение для настольного компьютера, убедитесь, что ваш комплект по умолчанию или тот, который вы используете, использует правильную версию Qt. Вы найдете поле со списком, где вы можете выбрать правильный.
После этого обновите и снова запустите qmake.
Что касается вашей второй проблемы, вы не редактируете свой профессиональный файл в QtDesigner, вы делаете это в QtCreator. По сути, откройте ваш проект и добавьте зависимость Qt:
QT += charts
Теперь откройте файл mainwindow.ui
или файл, в который вы хотите вставить вид диаграммы, и следуйте инструкциям поста, на который вы ссылались.
Пример: * * тысяча двадцать-пять
Это классическая конфигурация .pro:
QT += charts
SOURCES += \ main.cpp
В вашем главном файле вы всегда должны добавлять QT_CHARTS_USE_NAMESPACE
сверху. Например, чтобы отобразить линейный график, вы можете сделать что-то вроде этого:
#include <QtWidgets/QApplication>
#include <QtWidgets/QMainWindow>
#include <QtCharts/QChartView>
#include <QtCharts/QLineSeries>
QT_CHARTS_USE_NAMESPACE
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
// Create your time series
QLineSeries *series = new QLineSeries();
series->append(0, 6);
series->append(2, 4);
series->append(3, 8);
series->append(7, 4);
series->append(10, 5);
*series << QPointF(11, 1) << QPointF(13, 3) << QPointF(17, 6) << QPointF(18, 3) << QPointF(20, 2);
// Configure your chart
QChart *chart = new QChart();
chart->legend()->hide();
chart->addSeries(series);
chart->createDefaultAxes();
chart->setTitle("Simple line chart example");
// Create your chart view
QChartView *chartView = new QChartView(chart);
chartView->setRenderHint(QPainter::Antialiasing);
// Display into a main window
QMainWindow window;
window.setCentralWidget(chartView);
window.resize(400, 300);
window.show();
return a.exec();
}
Источник: Пример Qt .
Вам просто нужно заменить заключительную часть для вашего особого случая:
...
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
...
// chartView is the name of the widget your promoted
...
// Create your chart view
ui->chartView->setRenderHint(QPainter::Antialiasing);
ui->chartView->setChart(chart);
}