一、设置奇偶行背景色交替:
self.treeWidget.setAlternatingRowColors(True)
如图所示:
二、树节点展开与收缩
1、展开所有树节点
self.treeWidget.expandAll()
如图所示:
2、收缩所有树节点
self.treeWidget.collapseAll()
三、选中项操作
概述:
selectionMode属性用于控制view中操作数据项的模式,用于控制选择一个或多个数据项,以及在多个数据项中选择,同时对选择方式是否必须是一个连续的范围设置
1、QAbstractItemView.SelectionMode取值含义
selectionMode属性的类型为枚举类型枚举类型
QAbstractItemView.SelectionMode,对应取值及含义如下:
| 常量 | 描述 |
|---|---|
| SingleSelection | 仅能选择一个数据项,同windows鼠标左键选中文件 |
| MultiSelection | 实现按住鼠标左键拖动进行多选 |
| ContiguousSelection | 单击某个选项,按shlft+另外一个选项,中间所有选项会被选中,同windows中shift选文件 |
| ExtendedSelection | 有MultiSelection和ContiguousSelection效果,另外可以按住ctrl+鼠标左键实现不连续多选,同windows文件选择操作 |
| NoSelection | 所有数据项都无法选中 |
2、属性访问方法
selectionMode() 获取当前的属性值
setSelectionMode(QAbstractItemView.ExtendedSelection) # 设置属性值
另外属性值还可以通过Qt Designer直接设置
- 选中treeWidget对象
- 属性编辑器中输入:selection
- selectionMode属性值的下拉框中找到对应的项 最后进行保存
如图所示:
3、鼠标右键触发信号
contextMenuPolicy属性 contextMenuPolicy属性是组件的快捷菜单策略,快捷菜单通过在部件上点击鼠标右键触发。设置参数说明如下所示:
来源:CSDN博主老猿Python
示例:鼠标右键单击出现目录菜单
1.选中treeWidget对象
2.属性编辑器中输入:context
3.在下拉框中设置对应的属性 如图所示:
4、widget中设置信号方法
# 将信号请求连接到槽(单击鼠标右键,就调用方法)
self.treeWidget.customContextMenuRequested.connect(self.generateMenu)
5、generateMenu方法
# pos为点击的位置
def generateMenu(self, pos):
print(pos)
menu = QMenu(self)
copy_all_as_text = menu.addAction("Copy All As Text")
copy_selection_as_text = menu.addAction("Copy Selection As Text")
# 使菜单在正常位置显示
screenPos = self.treeWidget.mapToGlobal(pos)
# 单击一个菜单项就返回,使之被阻塞
action = menu.exec_(screenPos)
if action == copy_all_as_text:
# 以文本形式复制整个结果
self.copy_all_as_text_connect()
if action == copy_selection_as_text:
# 以文本形式复制选中的结果。
self.copy_selection_as_text_connect()