Как установить QChartView в Qt Designer? - PullRequest
0 голосов
/ 02 апреля 2019

Моя проблема идентична этой из этой темы: Как вставить QChartView в форму с Qt Designer? однако я все еще не могу ее решить.Я попытался загрузить плагин, но после ввода qmake в терминале я получаю следующую ошибку:

Неизвестная функция теста: qtHaveModule

С другой стороны, я не могу использовать первыйрешение тоже.Где я могу найти файл .pro в Qt Designer (не в qt creator)?

Заранее благодарю.

1 Ответ

0 голосов
/ 02 апреля 2019

Эти проблемы обычно возникают из-за того, что вы конфигурируете свой проект с более старой версией 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); }

...