#pragma once #include #include #include #include #include #include #include #include #include #include //#include #include #include #include "DataModelRegistry.hpp" #include "NodeDataModel.hpp" #include "Connection.hpp" #include "opcv/CvImageData.h" #include "opcv/CvGraphicsViewWidget.h" #include using QtNodes::PortType; using QtNodes::PortIndex; using QtNodes::NodeData; using QtNodes::NodeDataType; using QtNodes::NodeDataModel; using QtNodes::NodeValidationState; using QtNodes::Connection; class CvGraphicsShowModel :public NodeDataModel { Q_OBJECT public: CvGraphicsShowModel(); virtual ~CvGraphicsShowModel() {} public: QString caption() const override { return QStringLiteral("cvͼÏñGraphicsÏÔʾ"); } QString name() const override { return QStringLiteral("cvͼÏñGraphicsÏÔʾ"); } virtual QString modelName() const { return QStringLiteral("cvͼÏñGraphicsÏÔʾ"); } QWidget* embeddedWidget() override { return widget; } //bool resizable() const override { return true; } bool resizable() const override { return false; } NodeValidationState validationState() const override { return modelValidationState; } QString validationMessage() const override { return modelValidationError; } unsigned int nPorts(PortType portType) const override; NodeDataType dataType(PortType portType, PortIndex portIndex) const override; public Q_SLOTS: void onQSliderValueChanged(int val); //void onInputConnectionDeleted(); void inputConnectionDeleted(QtNodes::Connection const&) override; protected: bool RunTask(); bool eventFilter(QObject* watched, QEvent* event) override; public: NodeValidationState modelValidationState = NodeValidationState::Warning; QString modelValidationError = QStringLiteral("ͼƬÊäÈëδÁ¬½Ó!"); private: qreal mScaledNum = 1.0; //ÊÓ¿ÚËõ·Å±¶Êý QSlider* horizontalSlider; QWidget* widget; CvGraphicsViewWidget* mCvGraphicsView; std::shared_ptr mCvImageData; public: void setInData(std::shared_ptr, int) override; std::shared_ptr outData(PortIndex port) override; };