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 相关文章推荐
简单介绍Ruby中的CGI编程
Apr 10 Python
用Python程序抓取网页的HTML信息的一个小实例
May 02 Python
Python字符串切片操作知识详解
Mar 28 Python
Python判断以什么结尾以什么开头的实例
Oct 27 Python
python 实现让字典的value 成为列表
Dec 16 Python
Python变量作用域LEGB用法解析
Feb 04 Python
Python3+selenium实现cookie免密登录的示例代码
Mar 18 Python
利用Python如何实时检测自身内存占用
May 09 Python
在echarts中图例legend和坐标系grid实现左右布局实例
May 16 Python
Keras实现DenseNet结构操作
Jul 06 Python
Python3如何使用range函数替代xrange函数
Oct 05 Python
PyTorch预训练Bert模型的示例
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
PHP 中的批处理的实现
2007/06/14 PHP
用PHP进行MySQL删除记录操作代码
2008/06/07 PHP
PHP性能优化 产生高度优化代码
2011/07/22 PHP
php中unlink()、mkdir()、rmdir()等方法的使用介绍
2012/12/21 PHP
详解PHP导入导出CSV文件
2014/11/03 PHP
PHP实现图片的等比缩放和Logo水印功能示例
2017/05/04 PHP
PHP 文件锁与进程锁的使用示例
2017/08/07 PHP
PHPStudy下如何为Apache安装SSL证书的方法步骤
2019/01/23 PHP
PHP中遍历数组的三种常用方法实例分析
2019/06/24 PHP
基于jquery的让页面控件不可用的实现代码
2010/04/27 Javascript
Jquery 数据选择插件Pickerbox使用介绍
2012/08/24 Javascript
js中的前绑定和后绑定详解
2013/08/01 Javascript
用JS做的简单的可折叠的两级树形菜单
2013/09/21 Javascript
css与javascript跨浏览器兼容性总结
2014/09/15 Javascript
javascript实现类似于新浪微博搜索框弹出效果的方法
2015/07/27 Javascript
JS实现方向键切换输入框焦点的方法
2015/08/19 Javascript
javascript实现获取浏览器版本、浏览器类型
2015/12/02 Javascript
JavaScript封闭函数及常用内置对象示例
2019/05/13 Javascript
[00:32]DOTA2上海特级锦标赛 COL战队宣传片
2016/03/04 DOTA
Python面向对象编程中的类和对象学习教程
2015/03/30 Python
查找python项目依赖并生成requirements.txt的方法
2018/07/10 Python
Python实现的特征提取操作示例
2018/12/03 Python
解决Python一行输出不显示的问题
2018/12/03 Python
python的faker库用法
2019/11/28 Python
python实现矩阵和array数组之间的转换
2019/11/29 Python
python中用ctypes模拟点击的实例讲解
2020/11/26 Python
用python对excel进行操作(读,写,修改)
2020/12/25 Python
将时尚融入珠宝:Adornmonde
2019/10/17 全球购物
Yahoo-PHP面试题4
2012/05/05 面试题
班长岗位职责
2013/11/10 职场文书
电厂厂长岗位职责
2014/01/02 职场文书
个人社会实践自我鉴定
2014/03/24 职场文书
《春到梅花山》教学反思
2014/04/16 职场文书
2014年村支部书记四风对照检查材料思想汇报
2014/10/02 职场文书
win11怎么用快捷键锁屏? windows11锁屏的几种方法
2021/11/21 数码科技
了解MySQL查询语句执行过程(5大组件)
2022/08/14 MySQL