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使用PyGreSQL操作PostgreSQL数据库教程
Jul 30 Python
浅析Python中的多进程与多线程的使用
Apr 07 Python
详解Python 实现元胞自动机中的生命游戏(Game of life)
Jan 27 Python
pip install urllib2不能安装的解决方法
Jun 12 Python
对Python 两大环境管理神器 pyenv 和 virtualenv详解
Dec 31 Python
Python函数中参数是传递值还是引用详解
Jul 02 Python
详解使用python绘制混淆矩阵(confusion_matrix)
Jul 14 Python
python mqtt 客户端的实现代码实例
Sep 25 Python
Python实现计算长方形面积(带参数函数demo)
Jan 18 Python
python统计文章中单词出现次数实例
Feb 27 Python
python使用dlib进行人脸检测和关键点的示例
Dec 05 Python
Python urlopen()参数代码示例解析
Dec 10 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中PDO解决中文乱码问题的一些补充
2010/09/06 PHP
IIS6.0 开启Gzip方法及PHP Gzip函数分享
2014/06/08 PHP
ThinkPHP中Common/common.php文件常用函数功能分析
2016/05/20 PHP
PHP入门教程之面向对象基本概念实例分析
2016/09/11 PHP
php 与 nginx 的处理方式及nginx与php-fpm通信的两种方式
2018/09/28 PHP
javascript表单验证和Window详解
2014/12/11 Javascript
JS实现图片放大镜效果的方法
2015/02/27 Javascript
jQuery右下角旋转环状菜单特效代码
2015/08/10 Javascript
动态创建按钮的JavaScript代码
2016/01/29 Javascript
Angular.js与Bootstrap相结合实现手风琴菜单代码
2016/04/13 Javascript
JS平滑无缝滚动效果的实现代码
2016/05/06 Javascript
js获取客户端操作系统类型的方法【测试可用】
2016/05/27 Javascript
AngularJS下对数组的对比分析
2016/08/24 Javascript
原生js实现电商侧边导航效果
2017/01/19 Javascript
详解react使用react-bootstrap当轮子造车
2017/08/15 Javascript
vue的事件绑定与方法详解
2017/08/16 Javascript
使用jquery模拟a标签的click事件无法实现跳转的解决
2018/12/04 jQuery
vue子路由跳转实现tab选项卡
2019/07/24 Javascript
vue-router 中 meta的用法详解
2019/11/01 Javascript
微信小程序实现时间戳格式转换
2020/07/20 Javascript
python插入排序算法实例分析
2015/07/03 Python
python Pygame的具体使用讲解
2017/11/03 Python
详解python列表生成式和列表生成式器区别
2019/03/27 Python
python opencv实现证件照换底功能
2019/08/19 Python
Python连接字符串过程详解
2020/01/06 Python
Python发送手机动态验证码代码实例
2020/02/28 Python
python两种注释用法的示例
2020/10/09 Python
利用纯css3实现的文字亮光特效的代码演示
2014/11/27 HTML / CSS
html5跨域通讯之postMessage的用法总结
2013/11/07 HTML / CSS
澳大利亚领先的睡衣品牌:Peter Alexander
2016/08/16 全球购物
银行领导证婚词
2014/01/11 职场文书
年会主持词结束语
2014/03/27 职场文书
青年教师师德演讲稿
2014/08/26 职场文书
出纳岗位职责
2015/01/31 职场文书
幼儿园心得体会范文
2016/01/21 职场文书
vue引入Excel表格插件的方法
2021/04/28 Vue.js