目录html
Qt库封装了不少控件,种类也比较多,其中容器控件包括:表格、树和列表。git
使用过QtDesigner的同窗应该都知道,这个工具中有一个属性编辑器,是一个属性浏览器控件,就像vs中控件属性面板同样。github
今天咱们就来介绍一款使用QTreeWidget封装的属性控件QtTreePropertyBrowser,这个控件如今尚未被Qt正式的收录。浏览器
要想使用这个QtTreePropertyBrowser库,首先咱们须要去github上去下载源码,而后自行编译。编辑器
以下图所示,是github上的代码提交记录,仔细看提交时间,距离如今已经有9年过去了。函数
所以这个代码编译起来仍是比较费劲的,若是觉着编译费劲,也能够直接下载别人已经编译好了的QtPropertyBrowser库,或者留下邮箱我发送我编译好的demo。这里我本身也是想熟悉这个库,而且使用起来,所以本身决定对这个库中的语法错误进行解决,最后顺利到达效果。工具
源码升级过程当中主要参考了Qt5.4.2编译 qtpropertybrowser-2.51(从4修改到5的除错过程)这篇文章,还有我本身处理的几个小问题ui
使用vs中的qt-addin插件直接打开pro文件,打开工程后,以下图所示。spa
接下来是修改编译错误,大概有以下9个错误类型,大多都数均可以直接使用全局替换。.net
//旧代码 area.intersect(QRect(0, 0, width(), height())); //新代码 area.intersected(QRect(0, 0, width(), height()));
移除QApplication::UnicodeUTF8,别忘记移除这个参数以前的逗号,很重要,要否则编译不过。
Qt4到Qt5有一个很大的变化,就是不少QtGui模块中的东西被拆分到了QtWidgets模块中。
这里咱们使用vs打开工程后,编译时提示咱们模块找不到的话,须要把不少的QtGui改为QtWidgets,就像下面这样
//旧代码 #include <QtGui/QWidget> //新代码 #include <QtWidgets/QWidget>
全局替换,直接把Q_TYPENAME替换成typename
全局替换,直接把qVariantValue()替换成qvariant_cast()
Qt5时qFindChildren()被废除了,能够用findChildren()替代
//旧代码 QList<QtIntPropertyManager *> intPropertyManagers = qFindChildren<QtIntPropertyManager *>(manager); //新代码 QList<QtIntPropertyManager *> intPropertyManagers = manager->findChildren<QtIntPropertyManager *>();
//旧代码 setMovable() //新代码 setSectionsMovable()
//旧代码 setResizeMode() //新代码 setSectionResizeMode()
必定要添加上QtWidgets模块,以下图所示,每一个工程都须要这样设置
程序编译完成以后,会生成以下几个可执行程序。
尝试运行其中的simple.exe可执行程序,结果以下,看起来是否是还不错。
Qt5.4.2编译 qtpropertybrowser-2.51(从4修改到5的除错过程)
以上的内容,基本上就是本篇文章的内容全部内容啦!表格树控件可使用起来了。但愿能够帮到你们。
![]() |
![]() |
很重要--转载声明