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实现二分查找算法实例
May 26 Python
python中__call__内置函数用法实例
Jun 04 Python
python基础教程之五种数据类型详解
Jan 12 Python
Python引用传值概念与用法实例小结
Oct 07 Python
用python实现的线程池实例代码
Jan 06 Python
python生成圆形图片的方法
Mar 25 Python
Python常见字典内建函数用法示例
May 14 Python
django 微信网页授权登陆的实现
Jul 30 Python
将python安装信息加入注册表的示例
Nov 20 Python
Python scrapy爬取小说代码案例详解
Jul 09 Python
Python anaconda安装库命令详解
Oct 16 Python
Python Matplotlib库实现画局部图
Nov 17 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
精致的人儿就要挑杯子喝咖啡
2021/03/03 冲泡冲煮
PHP 页面跳转到另一个页面的多种方法方法总结
2009/07/07 PHP
php中cookie的使用方法
2014/03/29 PHP
php实现异步数据调用的方法
2015/12/24 PHP
PHP浮点数的一个常见问题
2016/03/10 PHP
PHP使用PHPExcel删除Excel单元格指定列的方法
2016/07/06 PHP
php 判断过去离现在几年的函数(实例代码)
2016/11/15 PHP
laravel 5.4 + vue + vux + element的环境搭配过程介绍
2018/04/26 PHP
PHP正则之正向预查与反向预查讲解与实例
2020/04/06 PHP
JS 如果改变span标签的是否隐藏属性
2011/10/06 Javascript
JS随机生成不重复数据的实例方法
2013/07/17 Javascript
教你用AngularJS框架一行JS代码实现控件验证效果
2014/06/23 Javascript
分享jQuery插件的学习笔记
2016/01/14 Javascript
javascript 注释代码的几种方法总结
2017/01/04 Javascript
jQuery实现手机上输入后隐藏键盘功能
2017/01/04 Javascript
js中删除数组中的某一元素实例(无下标时)
2017/02/28 Javascript
jQuery选择器之基本过滤选择器用法实例分析
2019/02/19 jQuery
详解React服务端渲染从入门到精通
2019/03/28 Javascript
微信小程序下拉加载和上拉刷新两种实现方法详解
2019/09/05 Javascript
解决包含在label标签下的checkbox在ie8及以下版本点击事件无效果兼容的问题
2019/10/27 Javascript
[01:06:07]2014 DOTA2国际邀请赛中国区预选赛5.21 DT VS CIS
2014/05/22 DOTA
Python编码类型转换方法详解
2016/07/01 Python
Python人工智能之路 jieba gensim 最好别分家之最简单的相似度实现
2019/08/13 Python
Python更新所有已安装包的操作
2020/02/13 Python
python字符串拼接+和join的区别详解
2020/12/03 Python
美国奢侈品在线团购网站:Gilt City
2017/11/16 全球购物
指导教师评语
2014/04/26 职场文书
超市商业计划书
2014/05/04 职场文书
校园环保建议书
2014/05/14 职场文书
投标服务承诺书
2014/05/28 职场文书
北京奥运会口号
2014/06/21 职场文书
职工小家建设活动方案
2014/08/25 职场文书
2014国庆黄金周超市促销活动方案
2014/09/21 职场文书
合同和协议有什么区别?
2014/10/08 职场文书
商务英语求职信范文
2015/03/19 职场文书
2016年政治理论学习心得体会
2016/01/25 职场文书