如下所示:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
|
# -*- coding: utf-8 -*-
import sys
from pyside.qtgui import *
from pyside.qtcore import *
global item_temp
item_temp = ''
class treewidget(qwidget):
def __init__( self ):
super (treewidget, self ).__init__()
self .setwindowtitle( 'treewidget' )
self .tree = qtreewidget() # 实例化一个treewidget对象
self .tree.setcolumncount( 2 ) # 设置部件的列数为2
self .tree.setdropindicatorshown(true)
self .tree.setselectionmode(qabstractitemview.extendedselection)
self .tree.setheaderlabels([ 'key' , 'value' ]) # 设置头部信息对应列的标识符
# 设置root为self.tree的子树,故root是根节点
root = qtreewidgetitem( self .tree)
root.settext( 0 , 'root' ) # 设置根节点的名称
root.setcheckstate( 0 , qt.unchecked);
root.setflags(root.flags() | qt.itemiseditable)
#设置可编辑
# 为root节点设置子结点
child1 = qtreewidgetitem(root)
child1.settext( 0 , 'child1' )
child1.settext( 1 , 'name1' )
child1.setcheckstate( 0 , qt.unchecked);
child2 = qtreewidgetitem(root)
child2.settext( 0 , 'child2' )
child2.settext( 1 , 'name2' )
child2.setcheckstate( 0 , qt.unchecked);
child3 = qtreewidgetitem(root)
child3.settext( 0 , 'child3' )
child3.setcheckstate( 0 , qt.unchecked);
child4 = qtreewidgetitem(child3)
child4.settext( 0 , 'child4' )
child4.settooltip( 0 , 'child4' )
#child4.statustip(0)
qtooltip.setfont(qfont( 'oldenglish' , 30 ))
child4.settext( 1 , 'name4' )
child4.settooltip( 1 , 'name4' )
child4.setcheckstate( 0 , qt.unchecked);
child5 = qtreewidgetitem(child3)
child5.settext( 0 , 'child5' )
child5.settooltip( 0 , 'child5' )
#child5.statustip(0)
qtooltip.setfont(qfont( 'oldenglish' , 30 ))
child5.settext( 1 , 'name5' )
child5.settooltip( 1 , 'name5' )
child5.setcheckstate( 0 , qt.unchecked);
button = qpushbutton( "test" )
self .lay = qvboxlayout()
self .lay.addwidget(button)
self .lay.addwidget( self .tree)
button.clicked.connect( self .gettext)
#self.tree.itemchanged.connect(self.handlechanged)
self .tree.itemdoubleclicked.connect( self .handlechanged)
#self.tree.itemdoubleclicked.connect(self.handlechanged)
self .tree.addtoplevelitem(root)
self .setlayout( self .lay) # 将tree部件设置为该窗口的核心框架
def handlechanged( self , item, column):
#print dir(item)
global item_temp
if item_temp = = "":
item_temp = (item,column)
item.setbackground(column,qcolor( 100 , 150 , 50 ))
print item_temp
else :
print item_temp
item_temp[ 0 ].setbackground(item_temp[ 1 ],qcolor( 255 , 255 , 255 ))
item.setbackground(column,qcolor( 120 , 150 , 50 ))
item_temp = (item,column)
print item_temp
#self.tree.selecteditems()
#item.setbackgroundcolor(column,qcolor(40,150,50))
#col=qcolor(190,150,50)
#item.setforeground(column,qbrush(col))
#print dir(item)
def gettext( self ):
t = qtreewidgetitemiterator( self .tree);
#print dir(qtreewidgetitemiterator)
while (t):
try :
print t.value().text( 0 )
except :
break
t. next ()
#print t
app = qapplication(sys.argv)
#app.abouttoquit.connect(app.deletelater)
tp = treewidget()
tp.show()
#app.installeventfilter(tp)
app.exec_()
|
#root.setflags(root.flags() | qt.itemiseditable)
#设置可编辑
#item.setbackground(column,qcolor(120,150,50))
#设置背景颜色
#gettext 获取所有item(迭代)
以上这篇pyqt4 treewidget 选择改变颜色,并设置可编辑的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/qq_38641985/article/details/83617657