超级实用的表格树控件--QtTreePropertyBrowser
一、源码下载
Qt库封装了很多控件,种类也比较多,其中容器控件包括:表格、树和列表。
使用过QtDesigner的同学应该都知道,这个工具中有一个属性编辑器,是一个属性浏览器控件,就像vs中控件属性面板一样。
今天我们就来介绍一款使用QTreeWidget封装的属性控件QtTreePropertyBrowser,这个控件现在还没有被Qt正式的收录。
要想使用这个QtTreePropertyBrowser库,首先我们需要去github上去下载源码,然后自行编译。
二、代码编译
如下图所示,是github上的代码提交记录,仔细看提交时间,距离现在已经有9年过去了。

因此这个代码编译起来还是比较费劲的,如果觉着编译费劲,也可以直接下载别人已经编译好了的QtPropertyBrowser库,或者留下邮箱我发送我编译好的demo。这里我自己也是想熟悉这个库,并且使用起来,因此自己决定对这个库中的语法错误进行解决,最后顺利到达效果。
源码升级过程中主要参考了Qt5.4.2编译 qtpropertybrowser-2.51(从4修改到5的除错过程)这篇文章,还有我自己处理的几个小问题
使用vs中的qt-addin插件直接打开pro文件,打开工程后,如下图所示。

接下来是修改编译错误,大概有如下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模块,如下图所示,每个工程都需要这样设置

三、运行结果
程序编译完成之后,会生成如下几个可执行程序。

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

四、参考文章
Qt5.4.2编译 qtpropertybrowser-2.51(从4修改到5的除错过程)
以上的内容,基本上就是本篇文章的内容所有内容啦!表格树控件可以使用起来了。希望可以帮到大家。
![]() |
![]() |
很重要--转载声明
本站文章无特别说明,皆为原创,版权所有,转载时请用链接的方式,给出原文出处。同时写上原作者:朝十晚八 or Twowords
如要转载,请原文转载,如在转载时修改本文,请事先告知,谢绝在转载时通过修改本文达到有利于转载者的目的。
超级实用的表格树控件--QtTreePropertyBrowser的更多相关文章
- 表格树控件QtTreePropertyBrowser编译成动态库(设计师插件)
目录 一.回顾 二.动态库编译 1.命令行编译动态库和测试程序 2.vs工具编译动态库和测试程序 3.安装文档 4.测试文档 三.设计师插件编译 1.重写QDesignerCustomWidgetIn ...
- Qt实现表格树控件-自绘树节点虚线
目录 一.开心一刻 二.自绘树节点? 三.效果展示 四.实现思路 1.可扩展接口 2.函数重写 3.同步左侧表头 五.相关文章 原文链接:Qt实现表格树控件-自绘树节点虚线 一.开心一刻 一程序员第一 ...
- Qt实现表格树控件-支持多级表头
目录 一.概述 二.效果展示 三.实现方式 四.多级表头 1.数据源 2.表格 3.QStyledItemDelegate绘制代理 五.测试代码 六.相关文章 原文链接:Qt实现表格树控件-支持多级表 ...
- JS组件系列——Bootstrap 树控件使用经验分享
前言:很多时候我们在项目中需要用到树,有些树仅仅是展示层级关系,有些树是为了展示和编辑层级关系,还有些树是为了选中项然后其他地方调用选中项.不管怎么样,树控件都是很多项目里面不可或缺的组件之一.今天, ...
- js插件---Bootstrap 树控件
js插件---Bootstrap 树控件 一.总结 一句话总结:可以直接用gojs,或者搜索js,jquery的树控件,或者bootstrap树控件,一大堆 gojs 二.JS组件系列——Bootst ...
- Bootstrap树控件(Tree控件组件)使用经验分享
前言:很多时候我们在项目中需要用到树,有些树仅仅是展示层级关系,有些树是为了展示和编辑层级关系,还有些树是为了选中项然后其他地方调用选中项.不管怎么样,树控件都是很多项目里面不可或缺的组件之一.今天, ...
- 【新特性速递】树控件结构由单层 TR 改为 TR-TD-TABLE 层级嵌套
FineUIPro/Mvc/Core的下个版本(v6.1.0),我们对树控件进行了优化,由原来的单层 TR 改为 TR-TD-TABLE 层级嵌套,从而做到表里如一. 上个版本(v6.0.0),我们对 ...
- PyQt5复杂控件(树控件、选项卡控件(滚动条控件、多文档控件、停靠控件)
1.树控件的基本使用方法QTreeWidget'''QTreeWidget树控件的使用方法添加图标,添加表格,添加复选框等'''from PyQt5.QtWidgets import *from Py ...
- MVC树控件,mvc中应用treeview,实现复选框树的多层级表单控件
类似于多层级的角色与权限控制功能,用MVC实现MVC树控件,mvc中应用treeview,实现复选框树的多层级表单控件.最近我们的项目中需要用到树型菜单,以前使用WebForm时,树型菜单有微软提供的 ...
随机推荐
- redis在windows10上跑起来
原文:redis在windows10上跑起来 今天,开始学习redis,发现大多数redis都是在Linux上面运行的,可是我想把它放到windows上面运行,经过查找资料,在GitHub上面发现了一 ...
- HDU 1598 find the most comfortable road (罗列+Kruskal) 并检查集合
Problem Description XX星有很多城市,城市之间通过一种奇怪的快速公路SARS(Super Air Roam Structure---超级空中漫游结构)进行交流.每条SARS都对行驶 ...
- WPF Clip实现百叶窗
原文:WPF Clip实现百叶窗 效果图; 后台代码: public MainWindow() { InitializeComponent(); ...
- hann function
hann function 是一种离散型窗函数,定义如下: w(n)=12(1−cos(2πnN−1))=sin2(πnN−1) 窗口的长度为 L=N+1; hann function 以及其傅里叶响 ...
- LAN公布java web项目的方法的外侧
1.进入路由器设置页面:http://192.168.1.1 2.找到"转发规则"选项,我现在的路由器tp-link,不同型号tp-link"转发规则"选项位置 ...
- jquery hover()的使用
<!DOCTYPE html><html><head><meta http-equiv="Content-Type" content=&q ...
- 一个技术人,最重要的是:极客精神(好奇心 + 探索欲)(新de代码)
一个技术人,最重要的是:极客精神(好奇心 + 探索欲) 初到社会,面对众多的IT企业,我们是陌生与好奇的,认为所有企业都是管理一流并且高大上等的.然而工作多年以后你会发现,国内的IT企业环境良莠不齐, ...
- 发布ActiveX控件
最近我们正在研究ActiveX技术.我们使用Delphi 5创建了一个具有ActiveForm的ActiveX控件应用程序.这个控件产生一个.OCX文件.现在,我们需要把这个控件部署在服务器端,在用户 ...
- mysql索引创建&查看&删除
1.索引作用 在索引列上,除了上面提到的有序查找之外,数据库利用各种各样的快速定位技术,能够大大提高查询效率.特别是当数据量非常大,查询涉及多个表时,使用索引往往能使查询速度加快成千上万倍. 例如,有 ...
- TIFF图片简介
每个TIFF文件都是从指示字节顺序的两个字节开始的.“II”表示小字节在先.“MM”表示大字节在先字节顺序.后面的两个字节表示数字42.数字42是“为了其深刻的哲学意义"而选择的. 42的读 ...