Qt qtpropertybrowser屬性列表的使用


1.首先需要安裝src

2.pro里添加

include($$[QT_INSTALL_PREFIX]/../Src/qttools/src/shared/qtpropertybrowser/qtpropertybrowser.pri)

3.MainWindow.h

在界面上添加一個widget,然后吧widget提升為QtTreePropertyBrowser,名稱為propertyTree

 1 #ifndef MAINWINDOW_H  2 #define MAINWINDOW_H
 3  
 4 #include <QMainWindow>
 5 #include <qtpropertybrowser.h>
 6 #include <qtpropertymanager.h>
 7 #include <qtvariantproperty.h>
 8  
 9 namespace Ui { 10 class MainWindow; 11 } 12  
13 class MainWindow : public QMainWindow 14 { 15  Q_OBJECT 16  
17 public: 18     explicit MainWindow(QWidget *parent = 0); 19     ~MainWindow(); 20 public slots: 21     void onValueChanged(QtProperty *property, const QVariant &val); 22 private: 23     Ui::MainWindow *ui; 24     QtVariantPropertyManager *m_pVarManager; 25     QtVariantPropertyManager *m_pVarManager2; 26     QtVariantEditorFactory *m_pVarFactory; 27     QMap<QtProperty*,QString> m_property_dic; 28 }; 29  
30 #endif // MAINWINDOW_H

4.MainWindow.cpp

 1 #include "mainwindow.h"
 2 #include "ui_mainwindow.h"
 3 #include <QDebug>
 4  
 5 MainWindow::MainWindow(QWidget *parent) :  6  QMainWindow(parent),  7     ui(new Ui::MainWindow)  8 {  9     ui->setupUi(this); 10     m_pVarManager = new QtVariantPropertyManager(ui->propertyTree);//關聯factory,屬性可以修改
11     m_pVarManager2 = new QtVariantPropertyManager(ui->propertyTree);//這個管理器不關聯factory,屬性不可修改
12     m_pVarFactory = new QtVariantEditorFactory(ui->propertyTree); 13     connect(m_pVarManager,&QtVariantPropertyManager::valueChanged,this, &MainWindow::onValueChanged);//綁定信號槽,當值改變的時候會發送信號
14     QtVariantProperty *groupItem  = m_pVarManager->addProperty(QtVariantPropertyManager::groupTypeId(),QStringLiteral("組1"));//添加組
15  
16     QtVariantProperty *item = m_pVarManager->addProperty(QVariant::Int,QStringLiteral("整形數據:")); 17     item->setValue(100); 18     groupItem->addSubProperty(item); 19     m_property_dic[item] = QStringLiteral("整形數據:"); 20     item = m_pVarManager->addProperty(QVariant::Bool,QStringLiteral("布爾型數據:")); 21     item->setValue(true); 22     groupItem->addSubProperty(item); 23     m_property_dic[item] = QStringLiteral("布爾型數據:"); 24     item = m_pVarManager2->addProperty(QVariant::Bool,QStringLiteral("布爾型數據2:")); 25     item->setValue(true); 26     groupItem->addSubProperty(item); 27     item =m_pVarManager->addProperty(QVariant::Double, QStringLiteral("浮點數據:")); 28     item->setValue(3.1415926); 29     groupItem->addSubProperty(item); 30     m_property_dic[item] = QStringLiteral("浮點數據:"); 31     item =m_pVarManager->addProperty(QVariant::String, QStringLiteral("字符串數據:")); 32     item->setValue(QStringLiteral("塵中遠")); 33     groupItem->addSubProperty(item); 34     m_property_dic[item] = QStringLiteral("字符串數據:"); 35     ui->propertyTree->addProperty(groupItem); 36     ui->propertyTree->setFactoryForManager(m_pVarManager,m_pVarFactory); 37 } 38  
39 MainWindow::~MainWindow() 40 { 41     delete ui; 42 } 43  
44 void MainWindow::onValueChanged(QtProperty *property, const QVariant &value) 45 { 46     QString s =m_property_dic[property]; 47     qDebug()<<s<<":"<<value; 48 }

5.效果:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM