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实现带验证码网站的自动登陆实现代码
Jan 12 Python
python实现TCP服务器端与客户端的方法详解
Apr 30 Python
python实现的简单FTP上传下载文件实例
Jun 30 Python
Python使用logging结合decorator模式实现优化日志输出的方法
Apr 16 Python
Django Highcharts制作图表
Aug 27 Python
人机交互程序 python实现人机对话
Nov 14 Python
Python Flask基础教程示例代码
Feb 07 Python
详解Python图像处理库Pillow常用使用方法
Sep 02 Python
Python搭建代理IP池实现检测IP的方法
Oct 27 Python
python 利用turtle库绘制笑脸和哭脸的例子
Nov 23 Python
python logging.basicConfig不生效的原因及解决
Feb 20 Python
Python使用Web框架Flask开发项目
Jun 01 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 socke 向指定页面提交数据
2008/07/23 PHP
PHP递归删除目录几个代码实例
2014/04/21 PHP
php实现获取及设置用户访问页面语言类
2014/09/24 PHP
PHP 实现公历日期与农历日期的互转换
2017/09/13 PHP
javascript 关闭IE6、IE7
2009/06/01 Javascript
关于JavaScript中var声明变量作用域的推断
2010/12/16 Javascript
JavaScript字符串插入、删除、替换函数使用示例
2013/07/25 Javascript
jquery队列queue与原生模仿其实现方法分享
2014/03/25 Javascript
javascript实现画不相交的圆
2015/04/07 Javascript
js预加载图片方法汇总
2015/06/15 Javascript
js实现获取两个日期之间所有日期的方法
2016/06/17 Javascript
基于Vue.js实现tab滑块效果
2017/07/23 Javascript
表格展示利器 Bootstrap Table实例代码
2017/09/06 Javascript
jq源码解析之绑在$,jQuery上面的方法(实例讲解)
2017/10/13 jQuery
代码详解JS操作剪贴板
2018/02/11 Javascript
nuxt.js 缓存实践
2018/06/25 Javascript
原生js 实现表单验证功能
2021/02/08 Javascript
[10:04]国际邀请赛采访专栏:DK.Farseer,mouz.Black^,采访员Josh专访
2013/08/05 DOTA
python3处理含有中文的url方法
2018/05/10 Python
python计算列表内各元素的个数实例
2018/06/29 Python
对Tensorflow中tensorboard日志的生成与显示详解
2020/02/04 Python
Python通过Pillow实现图片对比
2020/04/29 Python
PyTorch如何搭建一个简单的网络
2020/08/24 Python
pandas 按日期范围筛选数据的实现
2021/02/20 Python
英国口碑最好的的维他命胶囊品牌:Myvitamins(有中文站)
2016/12/03 全球购物
澳洲女装时尚在线:Blue Bungalow
2018/05/05 全球购物
英国书籍、CD、DVD和游戏的第一道德零售商:Awesome Books
2020/02/22 全球购物
POS解决方案:MUNBYN(热敏打印机、条形码扫描仪)
2020/06/09 全球购物
企业读书活动总结
2014/06/30 职场文书
村党支部群众路线教育实践活动对照检查材料
2014/09/26 职场文书
通知的格式范文
2015/04/27 职场文书
对领导班子的意见和建议
2015/06/08 职场文书
导游词之江南园林狮子林
2019/09/16 职场文书
css3 利用transform-origin 实现圆点分布在大圆上布局及旋转特效
2021/04/29 HTML / CSS
create-react-app开发常用配置教程
2022/06/25 Javascript
css中:last-child不生效的解决方法
2022/08/05 HTML / CSS