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

   qtpropertybrowser是一个洛基亚时代的一个产物,其实它就是QtDesigner侧栏那种样子而已。网上大部分的都只适用于Qt4,今天头脑发热想用Qt5编译一下,发觉一大堆错误,由于Qt4有些函数在Qt5里面是没有的,因此不断地找替代函数。当我辛辛苦苦编译出来后,在网上一搜,大把人发布了修改事后的源代码,能够支持Qt5编译,晕死了,早知道就不用那么辛苦了。不过也记录一下怎么去编译好了,下面只讲在编译时候出错的解决方法:函数

   拿到源码不能把qtpropertybrowser.pro拉到Creator里面,要把buildlib文件夹的buildlib.pro拉到Creator里面。ui

 

错误1:spa

 

 

解决方法:地球人都知道Qt5跟Qt4很明显的不一样就是这个,因此把#include <QtGui/QWidget>改为#include <QtWidgets/QWidget>.net

 

 

 

错误2:blog

 

 

解决方法:若是你看看Qt4的源码就知道Q_TYPENAME被定义成typename ,因此直接把Q_TYPENAME替换成typename图片

 

 

 

错误3:ip

 

 

解决方法:这个qVariantValue()已经被Qt5弃用了,能够用qvariant_cast()替换掉它,说到这里你们要好好利用Creator里面的查找替换功能,否则改死你~~~get

 

 

 

错误4:源码

 

 

解决方法:很明显qFindChildren()被废除了,能够用findChildren()替代,可是看清楚这个函数怎么用了,我把qt

 

[cpp]  view plain  copy
 
  1. QList<QtIntPropertyManager *> intPropertyManagers = qFindChildren<QtIntPropertyManager *>(manager);  


改为:

[cpp]  view plain  copy
 
  1. QList<QtIntPropertyManager *> intPropertyManagers = manager->findChildren<QtIntPropertyManager *>();  

 

 

 

 

错误5:

 

 

解决方法:把最后一个参数去掉,不要忘了删那个逗号!


 

 

错误6:

 

 

解决方法:把setMovable()改为setSectionsMovable();把setResizeMode()改为setSectionResizeMode()

 

 

 

 

错误7:

 

解决方法,在buildlib.pro文件里面添加下面的代码:

[cpp]  view plain  copy
 
  1. QT       += core gui  
  2. greaterThan(QT_MAJOR_VERSION, 4): QT += widgets  


 

 

下面是图片展:

 

 

 

 

 

https://blog.csdn.net/trustguan/article/details/47004759

相关文章
相关标签/搜索