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

相關文章
相關標籤/搜索