draggable demo

This commit is contained in:
王劲鹏
2021-06-02 10:11:14 +08:00
committed by osborn
parent 56d39d19a8
commit 057c7aa3ef
6 changed files with 234 additions and 0 deletions

View File

@@ -0,0 +1,27 @@
#include "DoricDraggableNode.h"
QQuickItem *DoricDraggableNode::build() {
QQmlComponent component(getContext()->getQmlEngine());
const QUrl url(QStringLiteral("qrc:/doric/qml/draggable.qml"));
component.loadUrl(url);
if (component.isError()) {
qCritical() << component.errorString();
}
QQuickItem *item = qobject_cast<QQuickItem *>(component.create());
this->createLayouts(item);
item->setProperty("wrapper", QString::number((qint64)this));
return item;
}
void DoricDraggableNode::blend(QQuickItem *view, QString name,
QJsonValue prop) {
if (name == "onDrag") {
onDrag = prop.toString();
} else {
DoricStackNode::blend(view, name, prop);
}
}

View File

@@ -0,0 +1,21 @@
#ifndef DORICDRAGGABLENODE_H
#define DORICDRAGGABLENODE_H
#include "DoricExport.h"
#include "shader/DoricStackNode.h"
class DORIC_EXPORT DoricDraggableNode : public DoricStackNode {
private:
QString onDrag;
public:
using DoricStackNode::DoricStackNode;
QQuickItem *build() override;
virtual void blend(QQuickItem *view, QString name, QJsonValue prop) override;
};
#endif // DORICDRAGGABLENODE_H