一杯清酒邀明月
天下本无事,庸人扰之而烦耳。
posts - 3121,comments - 209,views - 578万

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.效果:

posted on   一杯清酒邀明月  阅读(2692)  评论(0编辑  收藏  举报
编辑推荐:
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
阅读排行:
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期
· 全程使用 AI 从 0 到 1 写了个小工具
· 从文本到图像:SSE 如何助力 AI 内容实时呈现?(Typescript篇)
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示