QPropertyEditor 中的运行时动态属性

发布于 2024-07-23 04:36:39 字数 417 浏览 8 评论 0原文

我正在使用 Qt-Apps.org 中的 QPropertyEditor。

是否可以创建一个具有公开属性的类,其中属性的数量是运行时动态的? 例如,您有一个类,它表示具有任意长度的浮点向量,该长度在编译时未知。 所以你有一个

vector<float> myFloats;

作为班级成员。 如何使用 Q_PROPERTY 宏将其公开为属性。 所以最后我希望在属性编辑器小部件中具有以下视图:

  • MyClass
    • myFloats[0] 的值
    • myFloats 的值[1]
    • myFloats 的值[2] ... ...

提前致谢!

I am using the QPropertyEditor from Qt-Apps.org.

is it possible to create a class with exposed Properties where the amount of properties is runtime-dynamic? So for example you have a class which represents a vector of floats with an arbitrary length which is not known at compile time. So you have a

vector<float> myFloats;

as a class member. How to expose this as a property with the Q_PROPERTY macro. So at the end I like to have the following view in the property editor widget:

  • MyClass
    • value of myFloats[0]
    • value of myFloats[1]
    • value of myFloats[2]
      ...
      ...

Thanks in advance!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

千柳 2024-07-30 04:36:39

通过使用 动态属性 ...

在你的类中,你可以在运行时设置该类的动态属性

DynamicPropertiesClassForQPropertyEditor()
{
    QVector<int> properties;
    ///.... fill in thevalues
    for (int i=0 ; i!=properties.size() ; ++i )
    {
        const QString propertyName = QString( "value of properties[%1]").arg(i);
        setProperty( qPrintable(propertyName) ,properties.at(i) );
    }
}

By using dynamic properties ...

In your class u can set at runtime the dynamic properties of that class

DynamicPropertiesClassForQPropertyEditor()
{
    QVector<int> properties;
    ///.... fill in thevalues
    for (int i=0 ; i!=properties.size() ; ++i )
    {
        const QString propertyName = QString( "value of properties[%1]").arg(i);
        setProperty( qPrintable(propertyName) ,properties.at(i) );
    }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文