我在寻找相当于.NET的PropertyGrid,经过大量搜索,我找到了实际编译的这一个。但我不知道这对我自己的目标是如何运作的。示例项目中有一些示例,但这并不能真正帮助我如何使用自定义对象。
我尝试创建一个从QObject输入的类,并使用属性和字段进行测试,但两者都不起作用。我得到的是我的类名为空,没有列出任何值。
这是我的密码:
class Foo : public QObject
{
Q_OBJECT
public:
explicit Foo(QObject *parent = 0);
~Foo();
int val;
};我也尝试过像这样定义Foo类(这个版本崩溃):
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;发布于 2015-11-16 16:04:40
最好去找Qt属性浏览器。这是一个Qt解决方案和BSD许可。您可以通过搜索网络在子文件夹中找到多个示例。例如,Qt设计器也使用这个属性浏览器(它只是在上面添加颜色)。
https://stackoverflow.com/questions/33728631
复制相似问题