gldemo
Component.h
1 #pragma once
2 
3 #include <set>
4 
5 #include "nesteddefs.h"
6 #include "qvariant.h"
7 #include "qabstractitemmodel.h"
8 
15 class Component {
16 
17 protected:
18 
20  std::map<QString, QVariant> properties;
22  std::vector<QString> propertyKeys;
23 
24 public:
28  virtual QString name() const { return "undefined"; };
29 
30  virtual void onInit() {};
32  virtual void onUpdate() {};
34  virtual void onPropertyChange(const QString& key, const QVariant& original) {};
35 
36 public:
38  QVariant getProp(const QString& key);
40  void setProp(const QString& key, const QVariant& value);
42  std::vector<QString> getPropKeys();
43 
44 protected:
46  void defProp(const QString& key, const QVariant& init);
47 
48 
49 
50 };
51 
52 
53 
std::map< QString, QVariant > properties
所有非默认参数的键值对
Definition: Component.h:20
std::vector< QString > getPropKeys()
获取所有键
Definition: Component.cpp:29
组件的基类。里面的事件会由widget调用
Definition: Component.h:15
表示场景树中的节点
Definition: HierarchyObject.h:27
HierarchyObject * hierarchyObject
指向这个组件挂载的对象
Definition: Component.h:26
virtual void onPropertyChange(const QString &key, const QVariant &original)
有属性被更改时被调用一次
Definition: Component.h:34
void setProp(const QString &key, const QVariant &value)
改变属性的值
Definition: Component.cpp:20
virtual void onUpdate()
每帧被调用一次
Definition: Component.h:32
std::vector< QString > propertyKeys
所有非默认参数的键
Definition: Component.h:22
QVariant getProp(const QString &key)
获取属性的值
Definition: Component.cpp:9
void defProp(const QString &key, const QVariant &init)
定义属性,应当只在子类的构造函数中使用
Definition: Component.cpp:39
virtual QString name() const
该类型的名称,应由子类重写
Definition: Component.h:28