属性表是vs2003时引入的的新控件,用于流量和设置大量的信息,现在,很多软件上都能看到它的身影,如vs,Qt Creator等IDE的详细设置里都离不开属性表。
QtBoolPropertyManager
QtColorPropertyManager
QtDatePropertyManager
QtDateTimePropertyManager
QtDoublePropertyManager
QtEnumPropertyManager
QtFlagPropertyManager
QtFontPropertyManager
QtGroupPropertyManager
QtIntPropertyManager
QtPointPropertyManager
QtRectPropertyManager
QtSizePropertyManager
QtSizePolicyPropertyManager
QtStringPropertyManager
QtTimePropertyManager
QtVariantPropertyManager
QtVariantPropertyManager*m_pVarManager;
m_pVarManager =newQtVariantPropertyManager(ui->propertyTree);
QtVariantProperty *item =m_pVarManager->addProperty(QVariant::Int, QStringLiteral("整形数据:"));
item->setValue(101);
ui->propertyTree->addProperty(item);
item =m_pVarManager->addProperty(QVariant::Bool, QStringLiteral("布尔型数据:"));
item->setValue(true);
ui->propertyTree->addProperty(item);
item =m_pVarManager->addProperty(QVariant::Double, QStringLiteral("浮点数据:"));
item->setValue(3.1415926);
ui->propertyTree->addProperty(item);
item =m_pVarManager->addProperty(QVariant::String, QStringLiteral("字符串数据:"));
ui->propertyTree->addProperty(item);
item->setValue(QStringLiteral("尘中远")); m_pVarManager =newQtVariantPropertyManager(ui->propertyTree);
QtProperty *groupItem =m_pVarManager->addProperty(QtVariantPropertyManager::groupTypeId(),QStringLiteral("组1"));
QtVariantProperty *item =m_pVarManager->addProperty(QVariant::Int, QStringLiteral("整形数据:"));
item->setValue(101);
groupItem->addSubProperty(item);
item =m_pVarManager->addProperty(QVariant::Bool, QStringLiteral("布尔型数据:"));
item->setValue(true);
groupItem->addSubProperty(item);
item =m_pVarManager->addProperty(QVariant::Double, QStringLiteral("浮点数据:"));
item->setValue(3.1415926);
groupItem->addSubProperty(item);
item =m_pVarManager->addProperty(QVariant::String, QStringLiteral("字符串数据:"));
groupItem->addSubProperty(item);
item->setValue(QStringLiteral("尘中远"));
ui->propertyTree->addProperty(groupItem); QtVariantPropertyManager*m_pVarManager;
QtVariantEditorFactory*m_pVarFactory; m_pVarManager =newQtVariantPropertyManager(ui->propertyTree);
m_pVarFactory =newQtVariantEditorFactory(ui->propertyTree);
QtProperty *groupItem =m_pVarManager->addProperty(QtVariantPropertyManager::groupTypeId(),QStringLiteral("组1"));
QtVariantProperty *item =m_pVarManager->addProperty(QVariant::Int, QStringLiteral("整形数据:"));
item->setValue(101);
groupItem->addSubProperty(item);
item =m_pVarManager->addProperty(QVariant::Bool, QStringLiteral("布尔型数据:"));
item->setValue(true);
groupItem->addSubProperty(item);
item =m_pVarManager->addProperty(QVariant::Double, QStringLiteral("浮点数据:"));
item->setValue(3.1415926);
groupItem->addSubProperty(item);
item =m_pVarManager->addProperty(QVariant::String, QStringLiteral("字符串数据:"));
groupItem->addSubProperty(item);
item->setValue(QStringLiteral("尘中远"));
ui->propertyTree->addProperty(groupItem);
ui->propertyTree->setFactoryForManager(m_pVarManager,m_pVarFactory);h文件
QMap<QtProperty*,QString>m_property_dic; QtVariantPropertyManager*m_pVarManager; QtVariantEditorFactory*m_pVarFactory;cpp
XXXClass::XXXClass(QWidget *parent)
:QMainWindow(parent),ui(newUi::XXXClass) {
m_pVarManager =newQtVariantPropertyManager(ui->propertyTree);
m_pVarFactory =newQtVariantEditorFactory(ui->propertyTree);
connect(m_pVarManager,&QtVariantPropertyManager::valueChanged,this,&XXXClass::variantPropertyValueChanged);
ui->propertyTree->setFactoryForManager(m_pVarManager,m_pVarFactory);
QtVariantProperty *item =m_pVarManager->addProperty(QVariant::Int, QStringLiteral("参数1"));
item->setValue(1);
ui->propertyTree->addProperty(item);
m_property_dic[item] =QStringLiteral("参数1");
item =m_pVarManager->addProperty(QVariant::Double, QStringLiteral("参数2"));
item->setValue(2);
ui->propertyTree->addProperty(item);
m_property_dic[item] =QStringLiteral("参数2");
item =m_pVarManager->addProperty(QVariant::String, QStringLiteral("参数3"));
item->setValue(QStringLiteral("czy"));
ui->propertyTree->addProperty(item);
m_property_dic[item] =QStringLiteral("参数3");
item =m_pVarManager->addProperty(QVariant::Bool, QStringLiteral("参数4"));
item->setValue(true);
ui->propertyTree->addProperty(item);
m_property_dic[item] =QStringLiteral("参数4");
}
voidXXXClass::variantPropertyValueChanged(QtProperty *property, constQVariant &value)
{
QString s =m_property_dic[property];
qDebug()<<s<<":"<<value;
}
Qt属性表控件的使用 QtTreePropertyBrowser
原文地址:http://blog.csdn.net/czyt1988/article/details/42423613