如何使用这个Qproperty网格库?
How to use this Qproperty grid library?
我一直在寻找实际编译的 .NET PropertyGrid and after a lot of search I found this one 的等价物。但我无法弄清楚这对我自己的对象是如何工作的。示例项目中有一些示例,但这并没有真正帮助我如何将其与我的自定义对象一起使用。
我尝试创建了一个继承自 QObject 的 class 并使用属性和字段进行了测试,但均无效。我得到的是我的 class 名称为空,没有列出任何值。
这是我的代码:
class Foo : public QObject
{
Q_OBJECT
public:
explicit Foo(QObject *parent = 0);
~Foo();
int val;
};
我也试过像这样定义 Foo class(这个版本崩溃了):
class Foo : public QObject
{
Q_OBJECT
public:
explicit Foo(QObject *parent = 0);
~Foo();
Q_PROPERTY(int a READ getA WRITE setA)
int a;
int getA() const;
void setA(int a);
};
以及创建 属性 网格的代码:
属性
Model *model = new PropertyModel();
Foo *f = new Foo();
PropertyItemFromQObject *conv=new PropertyItemFromQObject(&PropertyItemDefaultFactory::instance());
PropertyItem *it=conv->importFrom(f,true,0);
model->add( new PropertyItemColor("une couleur",QColor(0,255,0)));
model->add( new PropertyItemColor("test color",QColor(255,0,0)));
model->add(it);
tree.setModel(model);
tree.setItemDelegate(new PropertyDelegate());
tree.show();
delete f;
最好寻找 Qt Property Browser。它是 Qt 解决方案和 BSD 许可。您可以在子文件夹中以及通过搜索网络找到多个示例。例如,这个 属性 浏览器也被 Qt 设计器使用(它只是在上面添加了颜色)。
我一直在寻找实际编译的 .NET PropertyGrid and after a lot of search I found this one 的等价物。但我无法弄清楚这对我自己的对象是如何工作的。示例项目中有一些示例,但这并没有真正帮助我如何将其与我的自定义对象一起使用。
我尝试创建了一个继承自 QObject 的 class 并使用属性和字段进行了测试,但均无效。我得到的是我的 class 名称为空,没有列出任何值。
这是我的代码:
class Foo : public QObject
{
Q_OBJECT
public:
explicit Foo(QObject *parent = 0);
~Foo();
int val;
};
我也试过像这样定义 Foo class(这个版本崩溃了):
class Foo : public QObject
{
Q_OBJECT
public:
explicit Foo(QObject *parent = 0);
~Foo();
Q_PROPERTY(int a READ getA WRITE setA)
int a;
int getA() const;
void setA(int a);
};
以及创建 属性 网格的代码:
属性
Model *model = new PropertyModel();
Foo *f = new Foo();
PropertyItemFromQObject *conv=new PropertyItemFromQObject(&PropertyItemDefaultFactory::instance());
PropertyItem *it=conv->importFrom(f,true,0);
model->add( new PropertyItemColor("une couleur",QColor(0,255,0)));
model->add( new PropertyItemColor("test color",QColor(255,0,0)));
model->add(it);
tree.setModel(model);
tree.setItemDelegate(new PropertyDelegate());
tree.show();
delete f;
最好寻找 Qt Property Browser。它是 Qt 解决方案和 BSD 许可。您可以在子文件夹中以及通过搜索网络找到多个示例。例如,这个 属性 浏览器也被 Qt 设计器使用(它只是在上面添加了颜色)。