前言
本博客僅僅記錄自己的采坑過程以及幫助網友避坑,方便以后快速使用自定義控件,避免重復出錯。
下載插件
大神 Github Qt 自定義控件項目地址:https://github.com/feiyangqingyun/qucsdk
插件簡介
- 1:設置節點數據相當方便,按照對應格式填入即可,分隔符,
- 2:可設置提示信息 是否顯示+寬度
- 3:可設置行分隔符 是否顯示+高度+顏色
- 4:可設置選中節點線條突出顯示+顏色+左側右側位置
- 5:可設置選中節點三角形突出顯示+顏色+左側右側位置
- 6:可設置父節點的 選中顏色+懸停顏色+默認顏色
- 7:可設置子節點的 選中顏色+懸停顏色+默認顏色
- 8:可設置父節點文字的 圖標邊距+左側距離+字體大小+高度
- 9:可設置子節點文字的 圖標邊距+左側距離+字體大小+高度
- 10:可設置節點展開模式 單擊+雙擊+禁用
使用插件
-
插件法的自定義控件使用,務必保證編譯器完全一致。
-
將對應的quc.dll和libquc.a 或者 quc.lib(MSVC編譯器才有)集成到項目中。
-
使用到哪個控件,只需要將對應控件的頭文件集成到項目中即可。集成方法是將該頭文件復制到sdk目錄(因為pro文件寫的是從sdk目錄讀取頭文件),也可以自己定義目錄。
-
項目的pro文件加入代碼
INCLUDEPATH += $$PWD/sdk CONFIG(debug, debug|release){ LIBS += -L$$PWD/sdk/ -lqucd } else { LIBS += -L$$PWD/sdk/ -lquc }
編譯完成以后記得將動態庫文件復制到可執行文件同一目錄即可。
查詢大神提供的插件表查詢插件頭文件按上述過程添加即可
修改圖標
ui->listView->setItems("圖書管理||0||,查詢圖書|圖書管理|||0xf002,新增圖書|圖書管理|||0xf067,逾期管理||0||,查詢逾期|逾期管理|||0xf002,賬戶管理||0||,查詢讀者|賬戶管理|||0xf002,新增讀者|賬戶管理|||0xf067");
多次研究嘗試后發現這些十六進制均是字體圖標,到字體圖標網站查詢替換成自己喜歡的的免費圖標
Font Awesome 圖標地址: https://fontawesome.com/cheatsheet/free/solid
調用實例
ui->listView->setParentFontSize(22); //設置父節點字體大小
ui->listView->setParentMargin(70); //設置父節點文字偏移距離
ui->listView->setParentHeight(48); //設置父節點高度
//設置父節點的 選中顏色+懸停顏色+默認顏色
ui->listView->setParentBgNormalColor(QColor(19,161,255));
ui->listView->setParentBgSelectedColor(QColor(84,110,255));
ui->listView->setParentBgHoverColor(QColor(84,110,255));
ui->listView->setChildFontSize(18); //設置子點字體大小
ui->listView->setChildMargin(110); //設置子點文字偏移距離
ui->listView->setChildIconMargin(80); //設置子點圖標距離
ui->listView->setChildHeight(40); //設置子點高度
//子節點的 選中顏色+懸停顏色+默認顏色
ui->listView->setChildBgNormalColor(QColor(172,217,255));
ui->listView->setChildBgHoverColor(QColor(84,110,255));
ui->listView->setChildBgSelectedColor(QColor(84,110,255));
ui->listView->setChildTextNormalColor(QColor(0,0,0)); //設置子點文字默認顏色
// 管理||0|| 父節點 查詢圖書|圖書管理|||0xf002 子節點
ui->listView->setItems("圖書管理||0||,查詢圖書|圖書管理|||0xf002,新增圖書|圖書管理|||0xf067,逾期管理||0||,查詢逾期|逾期管理|||0xf002,賬戶管理||0||,查詢讀者|賬戶管理|||0xf002,新增讀者|賬戶管理|||0xf067");
其他樣式設置自行查看對應自定義控件頭文件方法列表
注意問題
這個自定義控件是基於listView控件改寫的,需要在UI界面拖一個 listView 控件 提升為自定義控件使用