超級實用的屬性瀏覽器控件--QtTreePropertyBrowser

1、源碼下載

Qt庫封裝了不少控件,種類也比較多,其中容器控件包括:表格、樹和列表。git

使用過QtDesigner的同窗應該都知道,這個工具中有一個屬性編輯器,是一個屬性瀏覽器控件,就像vs中控件屬性面板同樣。github

今天咱們就來介紹一款使用QTreeWidget封裝的屬性控件QtTreePropertyBrowser,這個控件如今尚未被Qt正式的收錄。瀏覽器

要想使用這個QtTreePropertyBrowser庫,首先咱們須要去github上去下載源碼,而後自行編譯。編輯器

2、代碼編譯

以下圖所示,是github上的代碼提交記錄,仔細看提交時間,距離如今已經有9年過去了。函數

所以這個代碼編譯起來仍是比較費勁的,若是覺着編譯費勁,也能夠直接下載別人已經編譯好了的QtPropertyBrowser庫,或者留下郵箱我發送我編譯好的demo。這裏我本身也是想熟悉這個庫,而且使用起來,所以本身決定對這個庫中的語法錯誤進行解決,最後順利到達效果。工具

源碼升級過程當中主要參考了Qt5.4.2編譯 qtpropertybrowser-2.51(從4修改到5的除錯過程)這篇文章,還有我本身處理的幾個小問題ui

使用vs中的qt-addin插件直接打開pro文件,打開工程後,以下圖所示。spa

接下來是修改編譯錯誤,大概有以下9個錯誤類型,大多都數均可以直接使用全局替換。.net

一、intersect函數替換爲intersected

//舊代碼
area.intersect(QRect(0, 0, width(), height()));
//新代碼
area.intersected(QRect(0, 0, width(), height()));

二、移除UnicodeUTF8

移除QApplication::UnicodeUTF8,別忘記移除這個參數以前的逗號,很重要,要否則編譯不過。

三、QtGui模塊拆分

Qt4到Qt5有一個很大的變化,就是不少QtGui模塊中的東西被拆分到了QtWidgets模塊中。

這裏咱們使用vs打開工程後,編譯時提示咱們模塊找不到的話,須要把不少的QtGui改爲QtWidgets,就像下面這樣

//舊代碼
#include <QtGui/QWidget>
//新代碼
#include <QtWidgets/QWidget>

四、Q_TYPENAME錯誤

全局替換,直接把Q_TYPENAME替換成typename

五、qVariantValue錯誤

全局替換,直接把qVariantValue()替換成qvariant_cast()

六、qFindChildren錯誤

Qt5時qFindChildren()被廢除了,能夠用findChildren()替代

//舊代碼
QList<QtIntPropertyManager *> intPropertyManagers = qFindChildren<QtIntPropertyManager *>(manager);  
//新代碼
QList<QtIntPropertyManager *> intPropertyManagers = manager->findChildren<QtIntPropertyManager *>();

七、setMovable移除

//舊代碼
setMovable()
//新代碼
setSectionsMovable()

八、setMovable移除

//舊代碼
setResizeMode()
//新代碼
setSectionResizeMode()

九、添加QtWidgets模塊

必定要添加上QtWidgets模塊,以下圖所示,每一個工程都須要這樣設置

3、運行結果

程序編譯完成以後,會生成以下幾個可執行程序。

嘗試運行其中的simple.exe可執行程序,結果以下,看起來是否是還不錯。

4、參考文章

Qt-解鎖QtPropertyBrowser控件

Qt5.4.2編譯 qtpropertybrowser-2.51(從4修改到5的除錯過程)


以上的內容,基本上就是本篇文章的內容全部內容啦!表格樹控件可使用起來了。但願能夠幫到你們。


若是您以爲文章不錯,不妨給個 打賞,寫做不易,感謝各位的支持。您的支持是我最大的動力,謝謝!!!




很重要--轉載聲明

  1. 本站文章無特別說明,皆爲原創,版權全部,轉載時請用連接的方式,給出原文出處。同時寫上原做者:朝十晚八 or Twowords

  2. 如要轉載,請原文轉載,如在轉載時修改本文,請事先告知,謝絕在轉載時經過修改本文達到有利於轉載者的目的。

相關文章
相關標籤/搜索