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自动格式化json文件的方法
Mar 11 Python
使用Python读写及压缩和解压缩文件的示例
Jul 08 Python
python+pandas分析nginx日志的实例
Apr 28 Python
Python地图绘制实操详解
Mar 04 Python
pycharm 安装JPype的教程
Aug 08 Python
Python 实现敏感目录扫描的示例代码
May 21 Python
使用ITK-SNAP进行抠图操作并保存mask的实例
Jul 01 Python
Python创建临时文件和文件夹
Aug 05 Python
python的数学算法函数及公式用法
Nov 18 Python
python3爬虫GIL修改多线程实例讲解
Nov 24 Python
Python的logging模块基本用法
Dec 24 Python
python之openpyxl模块的安装和基本用法(excel管理)
Feb 03 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中获取远程客户端的真实ip地址的方法
2011/08/03 PHP
Mysql中分页查询的两个解决方法比较
2013/05/02 PHP
php数组合并array_merge()函数使用注意事项
2014/06/19 PHP
php一维二维数组键排序方法实例总结
2014/11/13 PHP
Swoole-1.7.22 版本已发布,修复PHP7相关问题
2015/12/31 PHP
toString()一个会自动调用的方法
2010/02/08 Javascript
获取服务器传来的数据 用JS去空格的正则表达式
2012/03/26 Javascript
IE网页js语法错误2行字符1、FF中正常的解决方法
2013/09/09 Javascript
jQuery 写的简单打字游戏可以提示正确和错误的次数
2014/07/01 Javascript
Javascript简单实现面向对象编程继承实例代码
2015/11/27 Javascript
基于JavaScript实现定时跳转到指定页面
2016/01/01 Javascript
jQuery实现元素拖拽并cookie保存顺序的方法
2016/02/20 Javascript
vueJS简单的点击显示与隐藏的效果【实现代码】
2016/05/03 Javascript
使用ES6语法重构React代码详解
2017/05/09 Javascript
layui前段框架日期控件使用方法详解
2017/05/19 Javascript
Vue 项目代理设置的优化
2018/04/17 Javascript
Vue进度条progressbar组件功能
2018/04/17 Javascript
swiper在angularjs中使用循环轮播失效的解决方法
2018/09/27 Javascript
Python中内置数据类型list,tuple,dict,set的区别和用法
2015/12/14 Python
Python Django 封装分页成通用的模块详解
2019/08/21 Python
使用Python完成15位18位身份证的互转功能
2019/11/06 Python
django haystack实现全文检索的示例代码
2020/06/24 Python
python爬虫用mongodb的理由
2020/07/28 Python
美国一家著名的儿童鞋制造商:Stride Rite
2017/01/02 全球购物
美国蔬菜和植物种子公司:Burpee
2017/02/01 全球购物
英国最大的在线蜡烛商店:Candles Direct
2019/03/26 全球购物
DBA数据库管理员JAVA程序员架构师必看
2016/02/07 面试题
小学教师培训方案
2014/06/09 职场文书
写给领导的感谢信
2015/01/22 职场文书
邀请函模板
2015/02/02 职场文书
2015年教师节活动总结
2015/03/20 职场文书
2015年119消防宣传日活动总结
2015/03/24 职场文书
巴黎圣母院读书笔记
2015/06/26 职场文书
表扬稿表扬信的格式及范文
2019/06/24 职场文书
24年收藏2000多部退役军用电台
2022/02/18 无线电
Mybatis 一级缓存和二级缓存原理区别
2022/09/23 Java/Android