PyQt4 treewidget 选择改变颜色,并设置可编辑的方法


Posted in Python onJune 17, 2019

如下所示:

# -*- 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_()

PyQt4 treewidget 选择改变颜色,并设置可编辑的方法

#root.setFlags(root.flags() | Qt.ItemIsEditable)
#设置可编辑
#item.setBackground(column,QColor(120,150,50))
#设置背景颜色
#getText 获取所有item(迭代)

以上这篇PyQt4 treewidget 选择改变颜色,并设置可编辑的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python网络编程之TCP通信实例和socketserver框架使用例子
Apr 25 Python
python使用any判断一个对象是否为空的方法
Nov 19 Python
python实现在windows下操作word的方法
Apr 28 Python
python排序方法实例分析
Apr 30 Python
python 通过 socket 发送文件的实例代码
Aug 14 Python
对Python中内置异常层次结构详解
Oct 18 Python
Python打包工具PyInstaller的安装与pycharm配置支持PyInstaller详细方法
Feb 27 Python
python如何查看网页代码
Jun 07 Python
virtualenv介绍及简明教程
Jun 23 Python
Python获取浏览器窗口句柄过程解析
Jul 25 Python
python与js主要区别点总结
Sep 13 Python
Python将list元素转存为CSV文件的实现
Nov 16 Python
python3.6根据m3u8下载mp4视频
Jun 17 #Python
python如何实现视频转代码视频
Jun 17 #Python
python批量爬取下载抖音视频
Jun 17 #Python
python批量下载抖音视频
Jun 17 #Python
Python基础学习之类与实例基本用法与注意事项详解
Jun 17 #Python
python文本数据处理学习笔记详解
Jun 17 #Python
python3+PyQt5 实现Rich文本的行编辑方法
Jun 17 #Python
You might like
用PHP和ACCESS写聊天室(二)
2006/10/09 PHP
PHP实现获取图片颜色值的方法
2014/07/11 PHP
PHP PDOStatement对象bindpram()、bindvalue()和bindcolumn之间的区别
2014/11/20 PHP
PHP怎样用正则抓取页面中的网址
2016/08/09 PHP
javascript之ESC(第二类混淆)
2007/05/06 Javascript
jQuery选中select控件 无法设置selected的解决方法
2010/09/01 Javascript
基于json的jquery地区联动效果代码
2011/07/06 Javascript
JavaScript 用Node.js写Shell脚本[译]
2012/09/20 Javascript
Ajax异步提交表单数据的说明及方法实例
2013/06/22 Javascript
浅谈javascript面向对象程序设计
2015/01/21 Javascript
Javascript核心读书有感之语句
2015/02/11 Javascript
浅谈Jquery核心函数
2015/06/18 Javascript
jquery实现删除一个元素后面的所有元素功能
2015/12/21 Javascript
JavaScript基础知识及常用方法总结
2016/01/10 Javascript
jqPlot jQuery绘图插件的使用
2016/06/18 Javascript
纯JS打造网页中checkbox和radio的美化效果
2016/10/13 Javascript
Ajax高级笔记 JavaScript高级程序设计笔记
2017/06/22 Javascript
mpvue构建小程序的方法(步骤+地址)
2018/05/22 Javascript
详解webpack4之splitchunksPlugin代码包分拆
2018/12/04 Javascript
vue-cli 目录结构详细讲解总结
2019/01/15 Javascript
vue中实现点击按钮滚动到页面对应位置的方法(使用c3平滑属性实现)
2019/12/29 Javascript
Python中使用Counter进行字典创建以及key数量统计的方法
2018/07/06 Python
python中sys.argv函数精简概括
2018/07/08 Python
Python变量、数据类型、数据类型转换相关函数用法实例详解
2020/01/09 Python
解决Django中checkbox复选框的传值问题
2020/03/31 Python
使用Python和百度语音识别生成视频字幕的实现
2020/04/09 Python
在keras中实现查看其训练loss值
2020/06/16 Python
Python实现删除某列中含有空值的行的示例代码
2020/07/20 Python
Django REST Framework 分页(Pagination)详解
2020/11/30 Python
解决python 在for循环并且pop数组的时候会跳过某些元素的问题
2020/12/11 Python
大学生社会实践评语
2014/04/25 职场文书
党员承诺书格式
2014/05/21 职场文书
2014班子“三严三实”对照检查材料思想汇报
2014/09/18 职场文书
商场广播稿范文
2015/08/19 职场文书
文明和谐家庭事迹材料(2016精选版)
2016/02/29 职场文书
go设置多个GOPATH的方式
2021/05/05 Golang