QTreeWidget父子選中關聯以及簡單使用

2021-10-04 05:43:59 字數 4400 閱讀 9279

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出現多選框

void qtreewidgetitem::setcheckstate ( int column, qt::checkstate state )

for (int i=0; ichildcount(); i++)

使用setcolumnwidth(int,int)一直設定不了列寬

找到個代替的方法

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...