Как использовать эту библиотеку сетки Qproperty?

Я искал эквивалент .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;

0

Решение

Лучше искать Qt Property Browser. Это решение Qt и лицензия BSD. Вы можете найти несколько примеров в подпапке, а также искать в сети. Этот браузер свойств также используется, например, дизайнером Qt (он просто добавляет цвет поверх него).

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]