Comment placer deux graphique qchart dans une même fenetre
Unsolved
French
-
Avez-vous créé un widget par courbe ?
-
'j'ai créé deux graphiques qchart auxquels j'ai lie chacun avec un qchartview. Ensuite, j'ai créé un QGridLayout dans lequel j'ai ajouté les deux qchartview et quand j'exécute, les deux courbes se superposent. Il faut noter que j'ai placé le premier qchartview à l'emplacement (0,0) et le deuxième à l'emplacement (0,11). Chaque qchartview occupe 10 lignes et 10 colonnes.
-
Il faut montrer le code utilisé sinon ce sera du debugging à la boule de crystal.
-
Voici un petit demo.
mainwindow.h
#ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> #include <QChart>> QT_BEGIN_NAMESPACE namespace Ui { class MainWindow; } QT_END_NAMESPACE class MainWindow : public QMainWindow { Q_OBJECT public: MainWindow(QWidget *parent = nullptr); ~MainWindow(); private: Ui::MainWindow *ui; QtCharts::QChart chart1; QtCharts::QChart chart2; }; #endif // MAINWINDOW_H
mainwindow.cpp
#include "mainwindow.h" #include "ui_mainwindow.h" #include <QBarSet> #include <QBarSeries> #include <QChartView> #include <QLineSeries> MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , ui(new Ui::MainWindow) { ui->setupUi(this); auto* barset1 = new QtCharts::QBarSet("Bar1", this); barset1->append({4, 5, 1, 8, 7, 2, 3, 6, 9}); auto* barseries1 = new QtCharts::QBarSeries(this); barseries1->append(barset1); chart1.addSeries(barseries1); auto* chartview1 = new QtCharts::QChartView(&chart1, this); ui->verticalLayout->addWidget(chartview1); auto* barset2 = new QtCharts::QBarSet("Bar2", this); barset2->append({7, 2, 3, 5}); auto* barseries2 = new QtCharts::QBarSeries(this); barseries2->append(barset2); chart2.addSeries(barseries2); auto* chartview2 = new QtCharts::QChartView(&chart2, this); ui->verticalLayout_2->addWidget(chartview2); } MainWindow::~MainWindow() { delete ui; }
mainwindow.ui
<?xml version="1.0" encoding="UTF-8"?> <ui version="4.0"> <class>MainWindow</class> <widget class="QMainWindow" name="MainWindow"> <property name="geometry"> <rect> <x>0</x> <y>0</y> <width>800</width> <height>600</height> </rect> </property> <property name="windowTitle"> <string>MainWindow</string> </property> <widget class="QWidget" name="centralwidget"> <layout class="QHBoxLayout" name="horizontalLayout"> <item> <layout class="QVBoxLayout" name="verticalLayout"/> </item> <item> <layout class="QVBoxLayout" name="verticalLayout_2"/> </item> </layout> </widget> </widget> <resources/> <connections/> </ui>