欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

超级实用的表格树控件--QtTreePropertyBrowser

程序员文章站 2022-06-24 11:18:38
[TOC] 一、源码下载 Qt库封装了很多很控件,种类也比较多,其中容器控件包括:表格、树和列表。 使用过QtDesigner的同学应该都知道,这个工具中有一个属性编辑器,是一个表格树控件,就像vs中控件属性面板一样。 今天我们就来介绍一款使用QTreeWidget封装的表格树控件QtTreePro ......

一、源码下载

qt库封装了很多很控件,种类也比较多,其中容器控件包括:表格、树和列表。

使用过qtdesigner的同学应该都知道,这个工具中有一个属性编辑器,是一个表格树控件,就像vs中控件属性面板一样。

今天我们就来介绍一款使用qtreewidget封装的表格树控件qttreepropertybrowser,这个控件现在还没有被qt正式的收录。

要想使用这个qttreepropertybrowser库,首先我们需要去github上去下载源码,然后自行编译。

二、代码编译

如下图所示,是github上的代码提交记录,仔细看提交时间,距离现在已经有9年过去了。

超级实用的表格树控件--QtTreePropertyBrowser

因此这个代码编译起来还是比较费劲的,如果觉着编译费劲,也可以直接下载别人已经编译好了的qtpropertybrowser库,或者留下邮箱我发送我编译好的demo。这里我自己也是想熟悉这个库,并且使用起来,因此自己决定对这个库中的语法错误进行解决,最后顺利到达效果。

源码升级过程中主要参考了qt5.4.2编译 qtpropertybrowser-2.51(从4修改到5的除错过程)这篇文章,还有我自己处理的几个小问题

使用vs中的qt-addin插件直接打开pro文件,打开工程后,如下图所示。

超级实用的表格树控件--QtTreePropertyBrowser

接下来是修改编译错误,大概有如下9个错误类型,大多都数都可以直接使用全局替换。

1、intersect函数替换为intersected

//旧代码
area.intersect(qrect(0, 0, width(), height()));
//新代码
area.intersected(qrect(0, 0, width(), height()));

2、移除unicodeutf8

移除qapplication::unicodeutf8,别忘记移除这个参数之前的逗号,很重要,要不然编译不过。

3、qtgui模块拆分

qt4到qt5有一个很大的变化,就是很多qtgui模块中的东西被拆分到了qtwidgets模块中。

这里我们使用vs打开工程后,编译时提示我们模块找不到的话,需要把很多的qtgui改成qtwidgets,就像下面这样

//旧代码
#include <qtgui/qwidget>
//新代码
#include <qtwidgets/qwidget>

4、q_typename错误

全局替换,直接把q_typename替换成typename

5、qvariantvalue错误

全局替换,直接把qvariantvalue()替换成qvariant_cast()

6、qfindchildren错误

qt5时qfindchildren()被废除了,可以用findchildren()替代

//旧代码
qlist<qtintpropertymanager *> intpropertymanagers = qfindchildren<qtintpropertymanager *>(manager);  
//新代码
qlist<qtintpropertymanager *> intpropertymanagers = manager->findchildren<qtintpropertymanager *>();  

7、setmovable移除

//旧代码
setmovable()
//新代码
setsectionsmovable()

8、setmovable移除

//旧代码
setresizemode()
//新代码
setsectionresizemode()

9、添加qtwidgets模块

一定要添加上qtwidgets模块,如下图所示,每个工程都需要这样设置

超级实用的表格树控件--QtTreePropertyBrowser

三、运行结果

程序编译完成之后,会生成如下几个可执行程序。

超级实用的表格树控件--QtTreePropertyBrowser

尝试运行其中的simple.exe可执行程序,结果如下,看起来是不是还不错。

超级实用的表格树控件--QtTreePropertyBrowser

四、参考文章

qt-解锁qtpropertybrowser控件

qt5.4.2编译 qtpropertybrowser-2.51(从4修改到5的除错过程)


以上的内容,基本上就是本篇文章的内容所有内容啦!表格树控件可以使用起来了。希望可以帮到大家。


后续我会把这个控件封装起来,封装成一个类似于qtreewidget的控件,让其他人使用起来更容易




很重要--转载声明

  1. 本站文章无特别说明,皆为原创,版权所有,转载时请用链接的方式,给出原文出处。同时写上原作者: or twowords

  2. 如要转载,请原文转载,如在转载时修改本文,请事先告知,谢绝在转载时通过修改本文达到有利于转载者的目的。