PyQt5之QTreeWidget樹形結構

2021-10-08 10:19:20 字數 3518 閱讀 3781

方法

描述setcolumnwidth(int column,int width)

將指定列的寬度設定為給定的值width

inserttoplevelitems()

在檢視的頂層索引中插入專案列表

expandall()

展開所有的樹形節點

invisiblerootitem()

返回樹形控制項中不可見的根選項

selecteditems()

返回所有選定的非隱藏專案的列表

方法描述

addchild()

將子項追加到子列表中

settext()

設定顯示的節點文字

text()

返回顯示的節點文字

setcheckstate(column,state)

設定指定列的選中狀態:qt.checked(節點擊中),qt.unchecked(節點未選中)

seticon(column,icon)

在指定的列中顯示圖示

import sys

from pyqt5 import qtcore

from pyqt5.qtwidgets import

*from pyqt5.qtgui import

*from pyqt5.qtcore import

*class

table

(qmainwindow)

:def

__init__

(self)

:super()

.__init__(

) self.setgeometry(

300,

300,

500,

400)

self.setwindowtitle(

'qtreewidget的基本用法'

) self.tree = qtreewidget(

)#設定列數

self.tree.setcolumncount(2)

#設定樹形控制項頭部的標題

self.tree.setheaderlabels(

['key'

,'value'])

#設定根節點

root = qtreewidgetitem(self.tree)

root.settext(0,

'root'

)#設定樹形控制項的列的寬度

self.tree.setcolumnwidth(0,

160)

#設定子節點1

child1 = qtreewidgetitem(root)

child1.settext(0,

'child1'

) child1.settext(1,

'ios'

)#設定子節點2

child2 = qtreewidgetitem(root)

child2.settext(0,

'child2'

) child2.settext(1,

'')#設定子節點3

child3 = qtreewidgetitem(child2)

child3.settext(0,

'child3'

) child3.settext(1,

'android'

) self.tree.addtoplevelitem(root)

self.setcentralwidget(self.tree)

self.tree.expandall(

)if __name__ ==

"__main__"

: form = table(

) form.show())

)

執行效果如下:

還可以通過qtreewidget.inserttoplevelitems()來實現樹形結構,核心**如下:

#設定根節點

root = qtreewidgetitem(self.tree)

root.settext(0,

'root'

)rootlist =

child1 = qtreewidgetitem(

)child1.settext(0,

'child1'

)child1.settext(1,

'ios'

)root.addchild(child1)

self.tree.inserttoplevelitems(

0,rootlist)

設定節點狀態

#設定是否選中

child1.setcheckstate(

0,qt.checked)

設定節點的背景顏色

brush_red = qbrush(qt.red)

root.setbackground(

0,brush_red)

brush_green = qbrush(qt.green)

root.setbackground(

1,brush_green)

給節點新增響應事件

self.tree.clicked.connect(self.ontreeclicked)

defontreeclicked

(self,q)

: item = self.tree.currentitem(

)print

('key=%s,value=%s'

%(item.text(0)

,item.text(1)

))

系統定製模式

import sys

from pyqt5 import qtcore

from pyqt5.qtwidgets import

*from pyqt5.qtgui import

*from pyqt5.qtcore import

*if __name__ ==

"__main__"

:#window系統提供的模式

model = qdirmodel(

)#建立乙個qtreeview控制項

tree = qtreeview(

)#為控制項新增模式

tree.setmodel(model)

tree.setwindowtitle(

'qtreeview例子'

) tree.show())

)

執行效果如下:

pyqt5切換python版本 pyqt5介面切換

主要的思路就是建立兩個frame 如果有兩個以上同理 使用setvisible 函式顯示或者隱藏frame 引數是bool值 import sys from pyqt5.qtwidgets import from pyqt5.qtcore import from pyqt5.qtgui import...

PyQt5之選單程式設計

pyqt5是qt移植到python上形成的gui程式設計框架,自問世以來受到了越來越多的python程式設計師的喜愛,因為其具有如下優秀的特徵 接下來介紹一下pyqt5中如何程式設計實現選單。實現選單步驟很簡單 1 建立乙個選單欄 menubar self.menubar 2 新增選單 fileme...

PyQt5之網頁互動

pyqt5使用qwebengineview控制項來展示html頁面。方法 描述load qurl url 載入指定的url並顯示 sethtml qstring html 將網頁檢視的內容設定為指定的html內容 import sys from pyqt5 import qtcore from py...