qtreewidget常用函式記錄
新增根節點
qtreewidget *treewidget =
newqtreewidget
(this);
treewidget-
>
setcolumncount(4
);qstringlist labels;
labels <<
"redroot"
;//剩下的column置為空值
qtreewidgetitem *redroot =
newqtreewidgetitem
(labels)
;treewidget-
>
addtoplevelitem
(redroot)
;// 新增第二個直接再來一遍
labels <<
"blueroot"
;//剩下的column置為空值
qtreewidgetitem *blueroot =
newqtreewidgetitem
(labels)
;treewidget-
>
addtoplevelitem
(blueroot)
;// 插隊插入根節點,插在0號根節點的位置,之前的順序後移
treewidget-
>
inserttoplevelitem(0
, blueroot)
;
新增子節點
qstringlist childs <<
"0"<<
"1"<<
"2"<<
"3";
qtreewidgetitem *item =
newqtreewidgetitem
(childs)
;// 新增乙個子節點
redroot-
>
addchild
(item)
;// 新增多個子節點
redroot-
>
addchild
(/*qlistitemlist*/);
// 子節點插隊,插在redroot的0號位置,之前的當然順序後移
redroot-
>
insertchild(0
, item)
;
取值
// 根節點的數量
treewidget-
>
toplevelitemcount()
;// 獲取0號根下0號子的值
treewidget-
>
toplevelitem(0
)->
text(0
);// column總數
int cnt =
columncount()
;// 當前column號
int col =
currentcolumn()
;// 當前的item
qtreewidgetitem *item =
currentitem()
;// 獲取第1個根節點
qtreewidgetitem *item =
toplevelitem(1
);// 獲取選中的節點
qlist
> itemlist =
selecteditems()
;// 根據row、column號獲取節點
qtreewidgetitem *item =
itemat
(int row,
int column)
;
== 使用itemat(int x, int y) 一直取到的是根節點,原因不明==
刪除節點
// item為當前節點
qtreewidgetitem * item = treewidget-
>
currentitem()
;if(item)
else
}
多選框
利用以下函式,可以設定某一column出現多選框使用setcolumnwidth(int,int)一直設定不了列寬void qtreewidgetitem::setcheckstate ( int column, qt::checkstate state )
for (int i=0; ichildcount(); i++)
找到個代替的方法訊號header()->setsectionresizemode(qheaderview::resizetocontents);//表頭自適應內容,所以如果表頭字數不夠,可以用空格來湊
header()->setstretchlastsection(true);//設定最後一列拉到底
注意:標頭檔案< qheaderview >
// 當前節點擊擇變化:選擇該item下的其他項、選擇其他item
void
currentitemchanged
(qtreewidgetitem *current, qtreewidgetitem *previous)
// 無節點擊中,第一次選擇觸發,或者在item按下鍵盤回車觸發,雙擊觸發
void
itemactivated
(qtreewidgetitem *item,
int column)
// 當樹節點設定了選擇框時,選擇框選擇狀態變化觸發
void
itemchanged
(qtreewidgetitem *item,
int column)
// 滑鼠在該item上按下抬起觸發,雙擊也會觸發
void
itemclicked
(qtreewidgetitem *item,
int column)
// 父節點收起擴充套件觸發
void
itemcollapsed
(qtreewidgetitem *item)
// 滑鼠在該item上雙擊觸發
void
itemdoubleclicked
(qtreewidgetitem *item,
int column)
// 滑鼠按下不抬起移動到節點另一項或者另一節點觸發
void
itementered
(qtreewidgetitem *item,
int column)
// 父節點開啟擴充套件觸發
void
itemexpanded
(qtreewidgetitem *item)
// 滑鼠在該item上按下觸發
void
itempressed
(qtreewidgetitem *item,
int column)
// 選擇的item發生變化,從乙個到另乙個或者從無選擇到有選擇
父子選中關聯
void widget::
inittree()
void widget::
setchildcheck
(qtreewidgetitem *item)
}else
if(item-
>
checkstate(0
)== qt::checked)}}
void widget::
setparentcheck
(qtreewidgetitem *item)
} parent-
>
setcheckstate(0
,qt::unchecked)
;return;}
else
if(item-
>
checkstate(0
)== qt::checked)
} parent-
>
setcheckstate(0
,qt::checked)
;return;}
}void widget::
on_treewidget_itemchanged
(qtreewidgetitem *item,
int column)
QTreeWidget右鍵選單
void mainwindow on treewidget customcontextmenurequested const qpoint pos qtreewidgetitem curitem ui treewidget currentitem if curitem null 右鍵空白的地方,可能...
樹形控制項QTreeWidget
1 import sys2 from pyqt5.qtcore importqt3 from pyqt5.qtwidgets import qlabel,qhboxlayout45 6class demo qwidget 7def init self 8 super demo,self init 9...
QTreeWidget的簡單使用
qtreewidget是一種樹形的部件,它以樹的形式顯示各個項,它的每個項使用qtreewidgetitem來表示。qtreewidgetitem的值的表示都是用qstringlist來表示的。簡單的說明一下 for int i 0 i 3 i for int i 0 i 3 i treewidge...