#pragma once #include "rqt_gui_cpp/plugin.h" #include #include #include #include #include #include #include #include #include #include #include #include #include inline void initResources() { Q_INIT_RESOURCE(res); } inline void cleanupResources() { Q_CLEANUP_RESOURCE(res); } namespace mg { class DemoPluginMg : public rqt_gui_cpp::Plugin { Q_OBJECT Q_PROPERTY(QObject* demoPlugin READ demoPlugin NOTIFY demoPluginChanged) public: DemoPluginMg(); virtual void shutdownPlugin() { cleanupResources(); } virtual void initPlugin(qt_gui_cpp::PluginContext &); QObject * demoPlugin() const { return (QObject *)(this); } const QSGGeometry::Point2D hello[8] = { {0.2,0.2}, {0.8,0.2}, {0.2,0.2}, {0.2,0.8}, {0.2,0.4}, {0.4,0.8}, {0.2,0.4}, {0.1,0.1}, }; const int hello_c = 8; signals: void demoPluginChanged(QObject * const); }; inline void DemoPluginMg::initPlugin(qt_gui_cpp::PluginContext &pc) { initResources(); const QUrl qrl("qrc:/qml/helloworld.qml"); QQuickView *qv = new QQuickView(); qv->rootContext()->setContextProperty("DemoPlug", this); qv->setSource(qrl); qv->setResizeMode(QQuickView::ResizeMode::SizeRootObjectToView); QSurfaceFormat format = qv->format(); format.setSamples(4); qv->setFormat(format); QWidget *qw_ = QWidget::createWindowContainer(qv); pc.addWidget(qw_); } }; // namespace mg