Qt樹形結構獲取點選展開摺疊事件

2021-08-15 12:06:04 字數 562 閱讀 8105

qt源**中處理展開摺疊是通過函式expandorcollapseitematpos,顧名思義其是通過位置判斷乙個mousepress事件是否是展開摺疊事件。

其源**的函式是private,因此還是需要自己手動根據位置寫出判斷事件。

1,繼承qtreeview的mousepressevent事件,獲取滑鼠當前位置(event->pos())。

2.最主要的函式visualrect(currentindex)【qtreewidget中是visualitemrect(currentitem)】,獲取到當前item的位置,主要就是item的起點。(rect.left())

所有樹形結構是由兩部分組成的,前面的縮排部分是branch,後面的才是item,item起點就是處於展開摺疊圖示後面。

3.qrect expandorcollape=qrect  ( rect.left()-20   ,   rect.top()   ,   20   ,   rect.height());

if(expandorcollape.contains(event->pos()))

printf("觸發展開摺疊事件");

快速獲取樹形結構資料

網上看了下獲取樹形結構資料的方法有很多種,我這種我個人感覺相對簡單和方便點,下面我就先貼出需求 後端需要返回的結果 let menuobj 孫類2 孫類3 孫類4 孫類5 子類2 孫類2 孫類3 孫類4 子類3 豬八戒 a2 bbb a3 bbb a4 bbb 屬性2 aaa 屬性3 aaa 屬性4...

Linux 中獲取當前目錄的樹形結構

linux tree命令用於以樹狀圖列出目錄的內容。執行tree指令,它會列出指定目錄下的所有檔案,包括子目錄裡的檔案。tree aacddffgilnnpqstux i 範本樣式 p 範本樣式 目錄.引數說明 以樹狀圖列出當前目錄結構。可直接使用如下命令 tree該命令有如下輸出結果 tree 以...

樹形結構查詢

select id,name from select substr translate sys connect by path translate t.name,tmp tmp 2 name,t.id,t.store id from allocations t where t.store id 23...