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);
::dd0815::