类似于这种:
就是右下角这个框,有属性名字和对应的value编辑。
这个Widget是作为一个QDockWidget被添加到QMainWindow中的。QMainWindow必须要有centralWidget才能添加DockWidget。DockWidget是可以浮动于centralWidget周边(上下左右)的一种Widget。QMainWindow中有addDockWiget这相应的函数添加。
而QDockWidget中可以设置相应的Widget,这个Widget(实际上就是属性编辑浏览窗口。)这个Widget实际上不是Qt Native自带的。而是Qt的解决方案中提供的Widget,也就是别人帮你封装做好了Widget,拿来用就可以了。这个Widget就是QtPropertyBrowser
样例代码:
nodeproperty.h 此类继承了QDockWidget
1 #ifndef NODE_PROPERTY_H 2 #define NODE_PROPERTY_H 3 4 #include <QObject> 5 #include <QDockWidget> 6 #include "diagramitem.h" 7 8 9 QT_BEGIN_NAMESPACE 10 11 class QDockWidget; 12 class QtVariantPropertyManager; 13 class QtProperty; 14 class QtVariantProperty; 15 class QtVariantEditorFactory; 16 class QtTreePropertyBrowser; 17 QT_END_NAMESPACE 18 19 20 class NodePropertyWidget:public QDockWidget 21 { 22 public: 23 24 NodePropertyWidget(DiagramItem::DiagramType type, QWidget* parent = 0); 25 ~NodePropertyWidget(); 26 27 private: 28 void createProcessTreeProperty(); 29 void createDisplayTreeProperty(); 30 void createArrowTreeProperty(); 31 32 private: 33 QtVariantPropertyManager *variantManager; 34 QtProperty *topItem; 35 QtVariantProperty *item; 36 QtVariantEditorFactory *variantFactory; 37 QtTreePropertyBrowser *variantEditor; 38 }; 39 40 41 42 43 #endif