Werte aus QtTreePropertyBrowser lesen

Alles rund um die Programmierung mit Qt
Antworten
dd0815
Beiträge: 37
Registriert: 8. Juni 2010 16:28

Werte aus QtTreePropertyBrowser lesen

Beitrag von dd0815 »

Hallo zusammen,

zum Halten und Darstellen von Eigenschaften eines Objektes benutze ich den qtpropertybrowser (2.5_1)

Das Anlegen (innerhalb eines Docking Widgets) erfolgt so:

Code: Alles auswählen

    QDockWidget *propDockWidget = new QDockWidget(tr("Eigenschaften"), this);
    propDockWidget->setAllowedAreas(Qt::LeftDockWidgetArea |
                                    Qt::RightDockWidgetArea);
    propDockWidget->setFeatures(QDockWidget::DockWidgetMovable |
                                QDockWidget::DockWidgetFloatable);

    QtVariantPropertyManager *variantManager = new QtVariantPropertyManager(this);

    QtProperty *topItem1 = variantManager->addProperty(
            QtVariantPropertyManager::groupTypeId(),
            (QString) "UDP Listen");

    QtVariantProperty *item;

    // Empfangsport
    item = variantManager->addProperty(QVariant::Int,
                                       "Port");
    item->setValue(65000);
    item->setAttribute(QLatin1String("minimum"), 40000);
    item->setAttribute(QLatin1String("maximum"), 65000);
    item->setAttribute(QLatin1String("singleStep"), 10);
    topItem1->addSubProperty(item);

    QtProperty *topItem2 = variantManager->addProperty(
            QtVariantPropertyManager::groupTypeId(),
            (QString) "UDP Send");

    // ZielIP
    item = variantManager->addProperty(QVariant::String,
                                       "Ziel-IP");
    item->setValue("172.21.50.160");
    topItem2->addSubProperty(item);

    // Zielport
    item = variantManager->addProperty(QVariant::Int,
                                       "Ziel-Port");
    item->setValue(65000);
    item->setAttribute(QLatin1String("minimum"), 40000);
    item->setAttribute(QLatin1String("maximum"), 65000);
    item->setAttribute(QLatin1String("singleStep"), 10);
    topItem2->addSubProperty(item);
   

    QtVariantEditorFactory *variantFactory = new QtVariantEditorFactory();

    propBrowser = new QtTreePropertyBrowser();
    propBrowser->setFactoryForManager(variantManager, variantFactory);
    propBrowser->addProperty(topItem1);
    propBrowser->addProperty(topItem2);
    propBrowser->setResizeMode(QtTreePropertyBrowser::Interactive);
    propBrowser->setPropertiesWithoutValueMarked(true);
    propBrowser->setRootIsDecorated(false);
    propBrowser->setAlternatingRowColors(false);
    propBrowser->setSplitterPosition(130);

    propDockWidget->setWidget(propBrowser);
    addDockWidget(Qt::RightDockWidgetArea, propDockWidget);
Wie kann ich denn die Werte wieder auslesen? Das habe ich in der Doku nicht gefunden und in den Beispielen wird zwar viel eingetragen, aber die Werte werden nicht gelesen und anderweitig benutzt. Hat jemand diese Erfahrung mit dem QtTreePropertyBrowser?

::dd0815::
Antworten