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打造出适合自己的定制化Eclipse IDE
Mar 02 Python
python调用fortran模块
Apr 08 Python
使用Python中的tkinter模块作图的方法
Feb 07 Python
python使用正则表达式的search()函数实现指定位置搜索功能
Nov 10 Python
Python3 实现随机生成一组不重复数并按行写入文件
Apr 09 Python
Caffe均值文件mean.binaryproto转mean.npy的方法
Jul 09 Python
Python实现的企业粉丝抽奖功能示例
Jul 26 Python
详解python中eval函数的作用
Oct 22 Python
关于Python-faker的函数效果一览
Nov 28 Python
使用pygame编写Flappy bird小游戏
Mar 14 Python
使用pytorch实现论文中的unet网络
Jun 24 Python
Python+SeaTable实现计算两个日期间的工作日天数
Jul 07 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
Banner程序
2006/10/09 PHP
laravel 5.3 单用户登录简单实现方法
2019/10/14 PHP
用jQuery实现检测浏览器及版本的脚本代码
2008/01/22 Javascript
jQuery示例收集
2010/11/05 Javascript
js的隐含参数(arguments,callee,caller)使用方法
2014/01/28 Javascript
html5+javascript制作简易画板附图
2014/04/25 Javascript
js实现带圆角的多级下拉菜单效果
2015/08/28 Javascript
老生常谈 js中this的指向
2016/06/30 Javascript
JavaScript实现星级评分
2017/01/12 Javascript
利用NPM淘宝的node.js镜像加速nvm
2017/03/27 Javascript
vue.js内部自定义指令与全局自定义指令的实现详解(利用directive)
2017/07/11 Javascript
Angular 数据请求的实现方法
2018/05/07 Javascript
JS在if中的强制类型转换方式
2018/07/15 Javascript
JS/HTML5游戏常用算法之路径搜索算法 A*寻路算法完整实例
2018/12/14 Javascript
Vue-cli3.X使用px2 rem遇到的问题及解决方法
2019/08/08 Javascript
vue+element使用动态加载路由方式实现三级菜单页面显示的操作
2020/08/04 Javascript
[05:08]DOTA2-DPC中国联赛3月6日Recap集锦
2021/03/11 DOTA
Python连接DB2数据库
2016/08/27 Python
python如何对实例属性进行类型检查
2018/03/20 Python
Python数据处理numpy.median的实例讲解
2018/04/02 Python
详解Python安装scrapy的正确姿势
2018/06/26 Python
python使用writerows写csv文件产生多余空行的处理方法
2019/08/01 Python
django fernet fields字段加密实践详解
2019/08/12 Python
如何将你的应用迁移到Python3的三个步骤
2019/12/22 Python
Django实现celery定时任务过程解析
2020/04/21 Python
西班牙网上书店:Casa del Libro
2016/11/01 全球购物
俄罗斯购买自行车网站:Vamvelosiped
2021/01/29 全球购物
What's the difference between deep copy and shallow copy? (深拷贝与浅拷贝有什么区别)
2015/11/10 面试题
函授本科毕业自我鉴定
2013/10/09 职场文书
妇女儿童发展规划实施方案
2014/03/16 职场文书
党员干部批评与自我批评反四风思想汇报
2014/09/21 职场文书
2015应届毕业生求职信范文
2015/03/20 职场文书
刑事起诉书范文
2015/05/19 职场文书
傲慢与偏见读书笔记
2015/06/29 职场文书
茶花女读书笔记
2015/06/29 职场文书
Python中使用ipython的详细教程
2021/06/22 Python