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中的数据对象持久化存储模块pickle的使用示例
Mar 03 Python
python在Windows下安装setuptools(easy_install工具)步骤详解
Jul 01 Python
Python爬取当当、京东、亚马逊图书信息代码实例
Dec 09 Python
解决Django 在ForeignKey中出现 non-nullable field错误的问题
Aug 06 Python
Python获取一个用户名的组ID过程解析
Sep 03 Python
基于Python实现扑克牌面试题
Dec 11 Python
python如何操作mysql
Aug 17 Python
Python通过getattr函数获取对象的属性值
Oct 16 Python
基于Python实现全自动下载抖音视频
Nov 06 Python
Python爬虫之App爬虫视频下载的实现
Dec 08 Python
Python数据分析入门之数据读取与存储
May 13 Python
python 爬取华为应用市场评论
May 29 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
async和DOM Script文件加载比较
2014/07/20 PHP
ThinkPHP3.2.3实现分页的方法详解
2016/06/03 PHP
PHP使用DOM和simplexml读取xml文档的方法示例
2017/02/08 PHP
PHP实现的自定义图像居中裁剪函数示例【测试可用】
2017/08/11 PHP
php查看一个变量的占用内存的实例代码
2020/03/29 PHP
javascript 打开页面window.location和window.open的区别
2010/03/17 Javascript
jquery 图片轮换效果
2010/07/29 Javascript
Js从头学起(基本数据类型和引用类型的参数传递详细分析)
2012/02/16 Javascript
jQuery插件分享之分页插件jqPagination
2014/06/06 Javascript
三个js循环的关键字示例(for与while)
2016/02/16 Javascript
使用jquery提交form表单并自定义action的方法
2016/05/25 Javascript
jQuery实现的placeholder效果完整实例
2016/08/02 Javascript
javascript中递归的两种写法
2017/01/17 Javascript
基于JS脚本语言的基础语法详解
2017/07/22 Javascript
解决Vue不能检测数组或对象变动的问题
2018/02/24 Javascript
Vue用v-for给循环标签自身属性添加属性值的方法
2018/10/18 Javascript
基于mpvue小程序使用echarts画折线图的方法示例
2019/04/24 Javascript
手把手教你 CKEDITOR 4 实现Dialog 内嵌 IFrame操作详解
2019/06/18 Javascript
Vue+Vant 图片上传加显示的案例
2020/11/03 Javascript
element-plus一个vue3.xUI框架(element-ui的3.x 版初体验)
2020/12/02 Vue.js
Python修改Excel数据的实例代码
2013/11/01 Python
Python读取指定目录下指定后缀文件并保存为docx
2017/04/23 Python
python实现requests发送/上传多个文件的示例
2018/06/04 Python
Python实现绘制双柱状图并显示数值功能示例
2018/06/23 Python
Python Numpy计算各类距离的方法
2019/07/05 Python
基于多进程中APScheduler重复运行的解决方法
2019/07/22 Python
pandas处理csv文件的方法步骤
2020/10/16 Python
经典婚礼主持词
2014/03/13 职场文书
宣传活动总结范文
2014/07/01 职场文书
群众路线班子对照检查材料
2014/09/25 职场文书
活动费用申请报告
2015/05/15 职场文书
《鲸》教学反思
2016/02/23 职场文书
辞职信怎么写?
2019/05/21 职场文书
关于办理居住证的介绍信模板
2019/11/27 职场文书
Shell脚本一键安装Nginx服务自定义Nginx版本
2022/03/20 Servers
Python 数据可视化工具 Pyecharts 安装及应用
2022/04/20 Python