在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();

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