71 lines
1.5 KiB
C++
71 lines
1.5 KiB
C++
#pragma once
|
|
|
|
#include "rqt_gui_cpp/plugin.h"
|
|
|
|
#include <QtGui>
|
|
#include <QtQuick>
|
|
#include <QtWidgets>
|
|
#include <qfileinfo.h>
|
|
#include <qobject.h>
|
|
#include <qobjectdefs.h>
|
|
#include <qpushbutton.h>
|
|
#include <qquickview.h>
|
|
#include <qquickwindow.h>
|
|
#include <qresource.h>
|
|
#include <qsggeometry.h>
|
|
#include <qurl.h>
|
|
#include <qwidget.h>
|
|
|
|
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
|