在Qt中创建属性表的步骤(这是使用各个类型不同的PropertyManager)

1.首先定义一个属性QtProperty *priority,

然后为你要创建的属性建立一个管理器的实例,例如,为了建立一个整型类型的属性,首先实例化一个QIntPropertyManager类,      QtIntPropertyManager *intManager;然后我们使用管理器的addPropery()函数把这个属性加入到管理器中。然后用管理器的实例来为这个属性添加设置值。
    QtIntPropertyManager *intManager;    //
(2)建立一个属性的管理器
    QtProperty *priority:              //
(1)定义一个属性
   
    intManager = new QtIntPropertyManager;
    priority = intManager->addProperty("Priority");  //
(3)将属性加入到管理器中
   
    priority->setToolTip("Task Priority");  
    intManager->setRange(priority, 1, 5);  //
(4)
管理器来管理属性的动作
    intManager->setValue(priority, 3);

   QtEnumPropertyManager *enumManager;
    QtProperty *reportType;
    QStringList types;  
    ...
    types << "Bug" << "Suggestion" << "To Do";
    enumManager->setEnumNames(reportType, types);
    enumManager->setValue(reportType, 1); // "Suggestion"


.属性也可以被归类为一组使用QtGroupProperyManager类。每个属性也可以没有或者有很多子属性,使用addPropetry()函数来增加子属性。被组属性管理器建立的属性没有任何值,它仅仅是用来在属性继承表中作为一个组元素
    QtGroupPropertyManager *groupManager;
    QtProperty *task1;
   
    groupManager = new QtGroupPropertyManager;
    task1 = groupManager->addProperty("Task 1");
   
    task1->addSubProperty(priority);
    task1->addSubProperty(reportType);

 

.一旦我们建立了一个属性,我们将把属性管理器和一个工厂(facoty)连接,这个工厂将是这个类型的首选的编辑器
.为了呈现属性表。我们必须建立一
个属性浏览类的实例,然后用这个属性浏览类把属性管理器和工厂相联结,使用setFactoryManager()函数。
.最后使用属性浏览类的实例的show()函数把属性表显现出来。
  
    QtSpinBoxFactory    *spinBoxFactory = new QtSpinBoxFactory;
    QtEnumEditorFactory *enumFactory = new QtEnumEditorFactory;
   
    QtTreePropertyBrowser *browser;
    browser = new QtTreePropertyBrowser;

一旦我们设置好属性,我们将把每个管理器和一个工厂相连起来,工厂为每个管理器的每个类型提供了一个适合的编辑器,例如qtIntManager一般和QtSpinBoxFactory工厂相连接,


    browser->
setFactoryForManager(intManager, spinBoxFactory);
    browser->setFactoryForManager(enumManager, enumFactory);
     browser->addProperty(task1);
    browser->
show();

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章