c# - 集成 3D 交互式演示小部件问题
问题描述
我正在开发名为 WinCC OA 的控制和数据采集系统 (SCADA) 软件。后者不提供导入 3d 对象和动画对象的可能性,但确实提供了创建 API 的可能性。
就我而言,它是一个 EWO(外部小部件对象),您会发现附加了我生成的标头模板,它是使用 Qt 平台在 C++ 中开发的。
#ifndef __TEMPLATE__H_
#define __TEMPLATE__H_
#include <BaseExternWidget.hxx>
#include <QPen>
#include <QBrush>
//------------------------------------------------------------------------
--------
// this is the real widget (an ordinary Qt widget), which can also use
Q_PROPERTY
class MyWidget : public QWidget
{
Q_OBJECT
// TODO example properties
Q_PROPERTY( QStringList values READ getValues WRITE setValues DESIGNABLE
false )
Q_PROPERTY( QPen pen READ getPen WRITE setPen DESIGNABLE
false )
Q_PROPERTY( QBrush brush READ getBrush WRITE setBrush DESIGNABLE
false )
public:
MyWidget(QWidget *parent);
// TODO example of a string list property
QStringList getValues() const { return values; }
void setValues(const QStringList &list) { values = list; }
// a QPen property used on a line drawn inside this widget
const QPen &getPen() const { return pen; }
void setPen(const QPen &p) { pen = p; update(); }
// a QBrush property used as the background of this widget
QBrush getBrush() const;
void setBrush(const QBrush &brush);
signals:
// TODO example of a 2 signals this widget emits
void clicked1();
void clicked2();
protected:
virtual void paintEvent(QPaintEvent *event);
private:
// TODO example of a string list property
QStringList values;
QPen pen;
};
//------------------------------------------------------------------------
--------
// this is the EWO interface class
class EWO_EXPORT _TEMPLATE_ : public BaseExternWidget
{
Q_OBJECT
public:
_TEMPLATE_(QWidget *parent);
virtual QWidget *widget() const;
virtual QStringList signalList() const;
virtual bool methodInterface(const QString &name, QVariant::Type &retVal,
QList<QVariant::Type> &args) const;
virtual QStringList methodList() const;
public slots:
virtual QVariant invokeMethod(const QString &name, QList<QVariant>
&values, QString &error);
private slots:
// TODO the slots you need to redirect to the generic "signal" signal
void clicked1();
void clicked2();
private:
MyWidget *baseWidget;
};
#endif
老实说,纯粹在 Qt 中开发一个交互式 3d 模拟器,尊重生成的模板,我什至无法开始。
这是一个视频,可以让您了解我想要制作的 3d 模拟器 https://www.youtube.com/watch?v=yu-M6Omk1ps
我考虑过使用 3d 引擎开发模拟器,我开始使用统一开发它(3d 地铁站可视化,我通过按钮控制摄像机位置,我可以开/关电梯......等等)。
我设法做到了,但我的问题是集成,如何将这个模拟器集成到 WinCC OA 中,即我在统一下所做的演示将是新软件中的一个小部件,我可以通过最后一个软件控制电梯、自动扶梯等.
请帮忙
此致
安内斯
解决方案
推荐阅读
- api-platform.com - (API-PLATFORM)如何一次更新实体的一个属性
- monitoring - 通过与昨天的比较来检测 Prometheus 中缺失的标签
- c# - newtonsoft 升级到版本 10 后 JSON 返回数组而不是整数数据类型
- sql - Postgresql如何选择匹配条件的列?
- twig - 24H 格式的 Twig 输入类型时间
- css - 当元素靠近窗口边缘或页面底部时,如何在 Material-UI Popover 中动态更改锚点位置?
- c - c 是否跟踪分配的堆内存?
- testing - 使用相同的操作但不同的上下文进行测试
- python - 如何在 Python 中加载 .conll 文件?
- javascript - 如何在嵌套循环中增加计数器?