adopt for Qt6

This commit is contained in:
2023-11-01 20:59:22 +03:00
parent c73be2a29c
commit 106d7c6c93
4 changed files with 31 additions and 1 deletions

View File

@@ -9,10 +9,18 @@
Scatter3D::Scatter3D(QWidget * parent): QWidget{parent} { Scatter3D::Scatter3D(QWidget * parent): QWidget{parent} {
curGraphic = 0; curGraphic = 0;
#if QT_VERSION_MAJOR == 5
canvas = new QtDataVisualization::Q3DScatter(); canvas = new QtDataVisualization::Q3DScatter();
#else
canvas = new Q3DScatter();
#endif
canvas->setFlag(Qt::FramelessWindowHint); canvas->setFlag(Qt::FramelessWindowHint);
canvas->axisZ()->setReversed(true); canvas->axisZ()->setReversed(true);
#if QT_VERSION_MAJOR == 5
canvas->setShadowQuality(QtDataVisualization::QAbstract3DGraph::ShadowQualityNone); canvas->setShadowQuality(QtDataVisualization::QAbstract3DGraph::ShadowQualityNone);
#else
canvas->setShadowQuality(QAbstract3DGraph::ShadowQualityNone);
#endif
container = QWidget::createWindowContainer(canvas); container = QWidget::createWindowContainer(canvas);
setLayout(new QVBoxLayout(this)); setLayout(new QVBoxLayout(this));
layout()->setContentsMargins(0, 0, 0, 0); layout()->setContentsMargins(0, 0, 0, 0);
@@ -98,8 +106,13 @@ void Scatter3D::setGraphicMeshSmooth(bool smooth, int index) {
void Scatter3D::addGraphic(const QColor & color, float pointSize, Mesh mesh, bool meshSmooth) { void Scatter3D::addGraphic(const QColor & color, float pointSize, Mesh mesh, bool meshSmooth) {
Scatter3DGraphic sg; Scatter3DGraphic sg;
#if QT_VERSION_MAJOR == 5
sg.data = new QtDataVisualization::QScatterDataProxy(); sg.data = new QtDataVisualization::QScatterDataProxy();
sg.series = new QtDataVisualization::QScatter3DSeries(sg.data); sg.series = new QtDataVisualization::QScatter3DSeries(sg.data);
#else
sg.data = new QScatterDataProxy();
sg.series = new QScatter3DSeries(sg.data);
#endif
sg.series->setItemSize(pointSize); sg.series->setItemSize(pointSize);
sg.series->setBaseColor(color); sg.series->setBaseColor(color);
sg.series->setMesh(mesh); sg.series->setMesh(mesh);

View File

@@ -25,18 +25,27 @@
#include <QAbstract3DSeries> #include <QAbstract3DSeries>
#include <QWidget> #include <QWidget>
#if QT_VERSION_MAJOR == 5
namespace QtDataVisualization { namespace QtDataVisualization {
#endif
class Q3DScatter; class Q3DScatter;
class QScatterDataProxy; class QScatterDataProxy;
class QScatter3DSeries; class QScatter3DSeries;
class QScatterDataItem; class QScatterDataItem;
#if QT_VERSION_MAJOR == 5
} // namespace QtDataVisualization } // namespace QtDataVisualization
#endif
class QAD_GRAPHIC3D_EXPORT Scatter3D: public QWidget { class QAD_GRAPHIC3D_EXPORT Scatter3D: public QWidget {
Q_OBJECT Q_OBJECT
#if QT_VERSION_MAJOR == 6
using Mesh = QAbstract3DSeries::Mesh;
using DataArray = QVector<QScatterDataItem>;
#else
using Mesh = QtDataVisualization::QAbstract3DSeries::Mesh; using Mesh = QtDataVisualization::QAbstract3DSeries::Mesh;
using DataArray = QVector<QtDataVisualization::QScatterDataItem>; using DataArray = QVector<QtDataVisualization::QScatterDataItem>;
#endif
Q_PROPERTY(int currentGraphic READ currentGraphic WRITE setCurrentGraphic) Q_PROPERTY(int currentGraphic READ currentGraphic WRITE setCurrentGraphic)
Q_PROPERTY(int graphicsCount READ graphicsCount WRITE setGraphicsCount) Q_PROPERTY(int graphicsCount READ graphicsCount WRITE setGraphicsCount)
@@ -86,12 +95,17 @@ public slots:
private: private:
struct Scatter3DGraphic { struct Scatter3DGraphic {
#if QT_VERSION_MAJOR == 5
QtDataVisualization::QScatter3DSeries * series; QtDataVisualization::QScatter3DSeries * series;
QtDataVisualization::QScatterDataProxy * data; QtDataVisualization::QScatterDataProxy * data;
#else
QScatter3DSeries * series;
QScatterDataProxy * data;
#endif
}; };
QWidget * container; QWidget * container;
QtDataVisualization::Q3DScatter * canvas; Q3DScatter * canvas;
QVector<Scatter3DGraphic> graphics; QVector<Scatter3DGraphic> graphics;
int curGraphic; int curGraphic;

View File

@@ -193,11 +193,13 @@ inline QVector<T> PI2QVector(const PIVector<T> & v) {
ret << v[i]; ret << v[i];
return ret; return ret;
} }
#if QT_VERSION_MAJOR == 5
template<typename T> template<typename T>
inline PIVector<T> Q2PIVector(const QVector<T> & v) { inline PIVector<T> Q2PIVector(const QVector<T> & v) {
if (v.isEmpty()) return PIVector<T>(); if (v.isEmpty()) return PIVector<T>();
return PIVector<T>(v.constData(), (size_t)v.size()); return PIVector<T>(v.constData(), (size_t)v.size());
} }
#endif
template<typename T> template<typename T>
inline PIVector<T> Q2PIVector(const QList<T> & v) { inline PIVector<T> Q2PIVector(const QList<T> & v) {
if (v.isEmpty()) return PIVector<T>(); if (v.isEmpty()) return PIVector<T>();

View File

@@ -7,6 +7,7 @@
#include <QFormLayout> #include <QFormLayout>
#include <QGroupBox> #include <QGroupBox>
#include <QMetaEnum> #include <QMetaEnum>
#include <QActionGroup>
using Attribute = PIValueTree::Attribute; using Attribute = PIValueTree::Attribute;