summaryrefslogtreecommitdiffstats
path: root/examples/datavisualization
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2023-03-02 15:46:31 +0100
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2023-03-03 07:36:41 +0100
commit1bfc0919b8ddb0f1576b6f7ad20a72dc5d23f3e4 (patch)
treedb5ad75b7671f49dbd2498e59625eba5beab0012 /examples/datavisualization
parent4e540834144f12150f18bd0e5520b4f534881dd7 (diff)
graphgallery example: Rearrange initialization
Calculate the sizes in main and pass them to the graph initialization functions. Also display the message box for GL errors in main. Pick-to: 6.5 Task-number: QTBUG-110698 Change-Id: I622311220e6ff63980b59778bfe9bb56922e6149 Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
Diffstat (limited to 'examples/datavisualization')
-rw-r--r--examples/datavisualization/graphgallery/bargraph.cpp15
-rw-r--r--examples/datavisualization/graphgallery/bargraph.h2
-rw-r--r--examples/datavisualization/graphgallery/main.cpp26
-rw-r--r--examples/datavisualization/graphgallery/scattergraph.cpp16
-rw-r--r--examples/datavisualization/graphgallery/scattergraph.h2
-rw-r--r--examples/datavisualization/graphgallery/surfacegraph.cpp16
-rw-r--r--examples/datavisualization/graphgallery/surfacegraph.h2
7 files changed, 33 insertions, 46 deletions
diff --git a/examples/datavisualization/graphgallery/bargraph.cpp b/examples/datavisualization/graphgallery/bargraph.cpp
index 5bb04c01..3b981f87 100644
--- a/examples/datavisualization/graphgallery/bargraph.cpp
+++ b/examples/datavisualization/graphgallery/bargraph.cpp
@@ -10,7 +10,6 @@
#include <QtWidgets/qslider.h>
#include <QtWidgets/qfontcombobox.h>
#include <QtWidgets/qlabel.h>
-#include <QtWidgets/qmessagebox.h>
#include <QtWidgets/qradiobutton.h>
#include <QtWidgets/qbuttongroup.h>
#include <QtGui/qfontdatabase.h>
@@ -26,22 +25,18 @@ BarGraph::BarGraph()
BarGraph::~BarGraph() = default;
-bool BarGraph::initialize()
+bool BarGraph::initialize(const QSize &minimumGraphSize, const QSize &maximumGraphSize)
{
- if (!m_barsGraph->hasContext()) {
- QMessageBox msgBox;
- msgBox.setText("Couldn't initialize the OpenGL context.");
- msgBox.exec();
+ if (!m_barsGraph->hasContext())
return false;
- }
//! [1]
m_barsWidget = new QWidget;
QHBoxLayout *hLayout = new QHBoxLayout(m_barsWidget);
m_container = QWidget::createWindowContainer(m_barsGraph, m_barsWidget);
- QSize screenSize = m_barsGraph->screen()->size();
- m_container->setMinimumSize(QSize(screenSize.width() / 2, screenSize.height() / 1.75));
- m_container->setMaximumSize(screenSize);
+ m_barsGraph->resize(minimumGraphSize);
+ m_container->setMinimumSize(minimumGraphSize);
+ m_container->setMaximumSize(maximumGraphSize);
m_container->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
m_container->setFocusPolicy(Qt::StrongFocus);
hLayout->addWidget(m_container, 1);
diff --git a/examples/datavisualization/graphgallery/bargraph.h b/examples/datavisualization/graphgallery/bargraph.h
index 79c78510..5c4f98d9 100644
--- a/examples/datavisualization/graphgallery/bargraph.h
+++ b/examples/datavisualization/graphgallery/bargraph.h
@@ -14,7 +14,7 @@ public:
BarGraph();
~BarGraph();
- bool initialize();
+ bool initialize(const QSize &minimumGraphSize, const QSize &maximumGraphSize);
QWidget *barsWidget() { return m_barsWidget; }
private:
diff --git a/examples/datavisualization/graphgallery/main.cpp b/examples/datavisualization/graphgallery/main.cpp
index efe8ecbd..3e581983 100644
--- a/examples/datavisualization/graphgallery/main.cpp
+++ b/examples/datavisualization/graphgallery/main.cpp
@@ -6,8 +6,10 @@
#include "surfacegraph.h"
#include <QtWidgets/qapplication.h>
+#include <QtWidgets/qmessagebox.h>
#include <QtWidgets/qwidget.h>
#include <QtWidgets/qtabwidget.h>
+#include <QtGui/qscreen.h>
using namespace Qt::StringLiterals;
@@ -17,24 +19,26 @@ int main(int argc, char **argv)
QApplication app(argc, argv);
+ // Create a tab widget for creating own tabs for Q3DBars, Q3DScatter, and Q3DSurface
+ QTabWidget tabWidget;
+ tabWidget.setWindowTitle(u"Graph Gallery"_s);
+
+ const QSize screenSize = tabWidget.screen()->size();
+ const QSize minimumGraphSize{screenSize.width() / 2, qRound(screenSize.height() / 1.75)};
+
// Create bar graph
BarGraph bars;
- if (!bars.initialize())
- return -1;
-
// Create scatter graph
ScatterGraph scatter;
- if (!scatter.initialize())
- return -1;
-
// Create surface graph
SurfaceGraph surface;
- if (!surface.initialize())
- return -1;
- // Create a tab widget for creating own tabs for Q3DBars, Q3DScatter, and Q3DSurface
- QTabWidget tabWidget;
- tabWidget.setWindowTitle(u"Graph Gallery"_s);
+ if (!bars.initialize(minimumGraphSize, screenSize)
+ || !scatter.initialize(minimumGraphSize, screenSize)
+ || !surface.initialize(minimumGraphSize, screenSize)) {
+ QMessageBox::warning(nullptr, u"Graph Gallery"_s, u"Couldn't initialize the OpenGL context."_s);
+ return -1;
+ }
// Add bars widget
tabWidget.addTab(bars.barsWidget(), u"Bar Graph"_s);
diff --git a/examples/datavisualization/graphgallery/scattergraph.cpp b/examples/datavisualization/graphgallery/scattergraph.cpp
index 043d43ac..7506f914 100644
--- a/examples/datavisualization/graphgallery/scattergraph.cpp
+++ b/examples/datavisualization/graphgallery/scattergraph.cpp
@@ -8,7 +8,6 @@
#include <QtWidgets/qcheckbox.h>
#include <QtWidgets/qcombobox.h>
#include <QtWidgets/qlabel.h>
-#include <QtWidgets/qmessagebox.h>
#include <QtWidgets/qcommandlinkbutton.h>
using namespace Qt::StringLiterals;
@@ -20,21 +19,16 @@ ScatterGraph::ScatterGraph()
ScatterGraph::~ScatterGraph() = default;
-bool ScatterGraph::initialize()
+bool ScatterGraph::initialize(const QSize &minimumGraphSize, const QSize &maximumGraphSize)
{
- if (!m_scatterGraph->hasContext()) {
- QMessageBox msgBox;
- msgBox.setText("Couldn't initialize the OpenGL context.");
- msgBox.exec();
- return -1;
- }
+ if (!m_scatterGraph->hasContext())
+ return false;
m_scatterWidget = new QWidget;
QHBoxLayout *hLayout = new QHBoxLayout(m_scatterWidget);
m_container = QWidget::createWindowContainer(m_scatterGraph, m_scatterWidget);
- QSize screenSize = m_scatterGraph->screen()->size();
- m_container->setMinimumSize(QSize(screenSize.width() / 2, screenSize.height() / 1.75));
- m_container->setMaximumSize(screenSize);
+ m_container->setMinimumSize(minimumGraphSize);
+ m_container->setMaximumSize(maximumGraphSize);
m_container->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
m_container->setFocusPolicy(Qt::StrongFocus);
hLayout->addWidget(m_container, 1);
diff --git a/examples/datavisualization/graphgallery/scattergraph.h b/examples/datavisualization/graphgallery/scattergraph.h
index 0d3b8fc3..a7170eee 100644
--- a/examples/datavisualization/graphgallery/scattergraph.h
+++ b/examples/datavisualization/graphgallery/scattergraph.h
@@ -14,7 +14,7 @@ public:
ScatterGraph();
~ScatterGraph();
- bool initialize();
+ bool initialize(const QSize &minimumGraphSize, const QSize &maximumGraphSize);
QWidget *scatterWidget() { return m_scatterWidget; }
private:
diff --git a/examples/datavisualization/graphgallery/surfacegraph.cpp b/examples/datavisualization/graphgallery/surfacegraph.cpp
index 5de2b7cd..6147c437 100644
--- a/examples/datavisualization/graphgallery/surfacegraph.cpp
+++ b/examples/datavisualization/graphgallery/surfacegraph.cpp
@@ -10,7 +10,6 @@
#include <QtWidgets/qradiobutton.h>
#include <QtWidgets/qgroupbox.h>
#include <QtWidgets/qlabel.h>
-#include <QtWidgets/qmessagebox.h>
#include <QtWidgets/qcommandlinkbutton.h>
#include <QtGui/qpainter.h>
@@ -23,21 +22,16 @@ SurfaceGraph::SurfaceGraph()
SurfaceGraph::~SurfaceGraph() = default;
-bool SurfaceGraph::initialize()
+bool SurfaceGraph::initialize(const QSize &minimumGraphSize, const QSize &maximumGraphSize)
{
- if (!m_surfaceGraph->hasContext()) {
- QMessageBox msgBox;
- msgBox.setText("Couldn't initialize the OpenGL context.");
- msgBox.exec();
- return -1;
- }
+ if (!m_surfaceGraph->hasContext())
+ return false;
m_surfaceWidget = new QWidget;
QHBoxLayout *hLayout = new QHBoxLayout(m_surfaceWidget);
m_container = QWidget::createWindowContainer(m_surfaceGraph, m_surfaceWidget);
- QSize screenSize = m_surfaceGraph->screen()->size();
- m_container->setMinimumSize(QSize(screenSize.width() / 2, screenSize.height() / 1.75));
- m_container->setMaximumSize(screenSize);
+ m_container->setMinimumSize(minimumGraphSize);
+ m_container->setMaximumSize(maximumGraphSize);
m_container->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
m_container->setFocusPolicy(Qt::StrongFocus);
hLayout->addWidget(m_container, 1);
diff --git a/examples/datavisualization/graphgallery/surfacegraph.h b/examples/datavisualization/graphgallery/surfacegraph.h
index 92b448ad..5e012b19 100644
--- a/examples/datavisualization/graphgallery/surfacegraph.h
+++ b/examples/datavisualization/graphgallery/surfacegraph.h
@@ -14,7 +14,7 @@ public:
SurfaceGraph();
~SurfaceGraph();
- bool initialize();
+ bool initialize(const QSize &minimumGraphSize, const QSize &maximumGraphSize);
QWidget *surfaceWidget() { return m_surfaceWidget; }
private: