diff options
author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2023-03-02 15:46:31 +0100 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2023-03-03 07:36:41 +0100 |
commit | 1bfc0919b8ddb0f1576b6f7ad20a72dc5d23f3e4 (patch) | |
tree | db5ad75b7671f49dbd2498e59625eba5beab0012 /examples/datavisualization | |
parent | 4e540834144f12150f18bd0e5520b4f534881dd7 (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')
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: |