Qt5.4.2编译 qtpropertybrowser-2.51(从4修改到5的除错过程)
qtpropertybrowser是一个洛基亚时代的一个产物,其实它就是QtDesigner侧栏那种样子而已。网上大部分的都只适用于Qt4,今天头脑发热想用Qt5编译一下,发觉一大堆错误,因为Qt4有些函数在Qt5里面是没有的,所以不断地找替代函数。当我辛辛苦苦编译出来后,在网上一搜,大把人发布了修改过后的源代码,可以支持Qt5编译,晕死了,早知道就不用那么辛苦了。不过也记录一下怎么去编译好了,下面只讲在编译时候出错的解决方法:
拿到源码不能把qtpropertybrowser.pro拉到Creator里面,要把buildlib文件夹的buildlib.pro拉到Creator里面。
错误1:
解决方法:地球人都知道Qt5跟Qt4很明显的不同就是这个,所以把#include <QtGui/QWidget>改成#include <QtWidgets/QWidget>
错误2:
解决方法:如果你看看Qt4的源码就知道Q_TYPENAME被定义成typename ,所以直接把Q_TYPENAME替换成typename
错误3:
解决方法:这个qVariantValue()已经被Qt5弃用了,可以用qvariant_cast()替换掉它,说到这里大家要好好利用Creator里面的查找替换功能,不然改死你~~~
错误4:
解决方法:很明显qFindChildren()被废除了,可以用findChildren()替代,但是看清楚这个函数怎么用了,我把
- QList<QtIntPropertyManager *> intPropertyManagers = qFindChildren<QtIntPropertyManager *>(manager);
改成:
- QList<QtIntPropertyManager *> intPropertyManagers = manager->findChildren<QtIntPropertyManager *>();
错误5:
解决方法:把最后一个参数去掉,不要忘了删那个逗号!
错误6:
解决方法:把setMovable()改成setSectionsMovable();把setResizeMode()改成setSectionResizeMode()
错误7:
解决方法,在buildlib.pro文件里面添加下面的代码:
- QT += core gui
- greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
下面是图片展:
https://blog.csdn.net/trustguan/article/details/47004759
相关文章
- IOS ITunesConnect 修改开发商名称
- vscode 修改(自定义)插件的快捷键
- 【STM32F429】第12章 ThreadX任务优先级修改及其分配方案
- Atitit 常见触发器功能总结 目录 1.1. mysql触发器实例 插入数据前更改数据值.mhtml1 1.2. 数据修改后更改数据值1 1.3. 不能为空检测约束。。1 2. Ref2
- atitit查询表修改表字段没反应--解锁锁定的表
- SSO单点登录系列4:cas-server登录页面自定义修改过程(jsp页面修改)
- SAP UI5 OData V4 表格控件的批量修改
- C++一些考题(有错请指出,及时修改)
- 【Android 逆向】逆向修改游戏应用 ( 分析应用结构 | 定位动态库位置 | 定位动态库中的修改点 | 修改动态库 | 重打包 )
- Java Agent初探——动态修改代码
- 修改PostgreSQL数据库默认用户postgres的密码
- Django修改个人中心信息
- RK3399平台开发系列讲解(系统修改记录篇)1.5、安卓系统所有音量条统一控制
- Android 10.0 修改系统默认的产品类型为设备类型
- Chemex3.4 怎么修改资产设备那原始二维码,扫码可查看该资产详细信息