c++ - 如何使用这个Qproperty网格库?

标签 c++ qt propertygrid

我一直在寻找 .NET 的 PropertyGrid 的等价物经过大量搜索,我找到了 this one实际编译。但我无法弄清楚这对我自己的对象是如何工作的。示例项目中有一些示例,但这并没有真正帮助我如何将其与我的自定义对象一起使用。

我尝试创建一个继承自 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;

最佳答案

最好寻找 Qt Property Browser .它是 Qt 解决方案和 BSD 许可。您可以在子文件夹中以及通过搜索网络找到多个示例。例如,Qt 设计器也使用此属性浏览器(它只是在其上添加颜色)。

关于c++ - 如何使用这个Qproperty网格库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33728631/

相关文章:

C++:成员和非成员函数之间的区别

java - 比较 excel 中的列

c++ - 动态创建自定义对象类型数组

c++ - 有效地从缓冲区读取值

Qt5 转发信号

c# - PropertyGrid 验证

c++ - QtConcurrent 在 reportResultsReady 上崩溃

if 语句的 C++ GUI 条件始终为真

c# - PropertyGrid控件-修改中心分割竖线的位置

.net - 以编程方式隐藏 PropertyGrid 中的字段