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的Flask框架中实现单元测试的教程
Apr 20 Python
浅谈python中的面向对象和类的基本语法
Jun 13 Python
R vs. Python 数据分析中谁与争锋?
Oct 18 Python
Python爬取附近餐馆信息代码示例
Dec 09 Python
python list元素为tuple时的排序方法
Apr 18 Python
Python Pandas批量读取csv文件到dataframe的方法
Oct 08 Python
python中正则表达式 re.findall 用法
Oct 23 Python
Django如何实现网站注册用户邮箱验证功能
Aug 14 Python
Python 中pandas索引切片读取数据缺失数据处理问题
Oct 09 Python
pymysql 插入数据 转义处理方式
Mar 02 Python
Python urlencode和unquote函数使用实例解析
Mar 31 Python
Python远程方法调用实现过程解析
Jul 28 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 nl2br函数 将换行字符转成 <br>
2009/08/21 PHP
php面向对象全攻略 (九)访问类型
2009/09/30 PHP
PHP中MVC模式的模板引擎开发经验分享
2011/03/23 PHP
PHP以及MYSQL日期比较方法
2012/11/29 PHP
PHP自定义递归函数实现数组转JSON功能【支持GBK编码】
2018/07/17 PHP
PHP容器类的两种实现方式示例
2019/07/24 PHP
PHP操作Redis常用命令的实例详解
2020/12/23 PHP
制作特殊字的脚本
2006/06/26 Javascript
jQuery 相关控件的事件操作分解
2009/08/03 Javascript
javascript 窗口加载蒙板 内嵌网页内容
2010/11/19 Javascript
extjs 时间范围选择自动判断的实现代码
2014/06/24 Javascript
javascript验证邮件地址和MX记录的方法
2015/06/16 Javascript
动态加载jQuery的方法
2015/06/16 Javascript
Vue 中使用vue2-highcharts实现top功能的示例
2018/03/05 Javascript
使用D3.js构建实时图形的示例代码
2018/08/28 Javascript
js防抖和节流的深入讲解
2018/12/06 Javascript
[02:10]探秘浦东源深体育馆 DOTA2 Supermajor不见不散
2018/05/17 DOTA
[41:21]夜魇凡尔赛茶话会 第三期02:看图识人
2021/03/11 DOTA
Python实现删除当前目录下除当前脚本以外的文件和文件夹实例
2015/07/27 Python
设计模式中的原型模式在Python程序中的应用示例
2016/03/02 Python
python开发利器之ulipad的使用实践
2017/03/16 Python
pandas数据集的端到端处理
2019/02/18 Python
15行Python代码实现网易云热门歌单实例教程
2019/03/10 Python
python3实现斐波那契数列(4种方法)
2019/07/15 Python
python从zip中删除指定后缀文件(推荐)
2019/12/05 Python
python 画图 图例自由定义方式
2020/04/17 Python
使用Python制作一盏 3D 花灯喜迎元宵佳节
2021/02/26 Python
css3中仿放大镜效果的几种方式原理解析
2020/12/03 HTML / CSS
马来西亚和新加坡巴士票在线预订:CatchThatBus
2018/11/17 全球购物
Linux文件系统类型
2012/02/15 面试题
如何从一个文件档案的尾端新增记录
2016/12/02 面试题
高中生物教学反思
2014/02/05 职场文书
竞选团支书演讲稿
2014/04/28 职场文书
孝敬父母的演讲稿
2014/05/14 职场文书
严以律己专题学习研讨会发言材料
2015/11/09 职场文书
springboot临时文件存储目录配置方式
2021/07/01 Java/Android