`
yunhaifeiwu
  • 浏览: 162879 次
  • 性别: Icon_minigender_1
  • 来自: 宁波
社区版块
存档分类
最新评论

pyqt5之树 (实例教程)

阅读更多
说明:
   python 3.5 ,pyqt5..


import sys
from PyQt5.QtGui import *
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
class TreeWidget(QMainWindow):
    myControls ={}
    def __init__(self,parent=None):
        QWidget.__init__(self,parent)
        self.setWindowTitle('TreeWidget')
        self.tree = QTreeWidget()
        self.myControls['tree']=self.tree
        self.tree.setColumnCount(2) # 说明是树形的表,
        self.tree.setHeaderLabels(['Key','Value']) # 是表,则有表头
        # 根节点的父是 QTreeWidget对象
        root= QTreeWidgetItem(self.tree)

        root.setText(0,'root')
        child1 = QTreeWidgetItem(root) #指出父结点
        child1.setText(0,'child1')
        child1.setText(1,'name1')
        child2 = QTreeWidgetItem(root)
        child2.setText(0,'child2')
        child2.setText(1,'name2')
        child3 = QTreeWidgetItem(root)
        child3.setText(0,'child3')
        child4 = QTreeWidgetItem(child3)
        child4.setText(0,'child4')
        child4.setText(1,'name4')
        #以下两句是主窗口的设置
        self.tree.addTopLevelItem(root)
        self.setCentralWidget(self.tree)

        #带图标是这形式QAction(QIcon("ss.png"), "add", self)
        addAction = QAction( "增加", self)
        addAction.triggered.connect(self.on_addAction_triggered)

        editAction = QAction("修改", self)
        editAction.triggered.connect(self.on_editdAction_triggered)

        deleteAction = QAction("删除", self)
        deleteAction.triggered.connect(self.on_deleteAction_triggered)

        findAction = QAction("查找", self)
        findAction.triggered.connect(self.on_findAction_triggered)

        toolbar = self.addToolBar("aa")
        toolbar.addAction(addAction)
        toolbar.addAction(editAction)
        toolbar.addAction(deleteAction)
        toolbar.addAction(findAction)

    def on_addAction_triggered(self):
        currNode = self.tree.currentItem()
        addChild1 =QTreeWidgetItem()
        addChild1.setText(0,'addChild1_key')
        addChild1.setText(1, 'addChild1_val')
        currNode.addChild(addChild1)

    def on_editdAction_triggered(self):
        currNode = self.tree.currentItem()
        currNode.setText(0,'editkey')
        currNode.setText(1, 'editvalue')

    def on_deleteAction_triggered(self):
        currNode = self.tree.currentItem()
        parent1=currNode.parent();
        parent1.removeChild (currNode)

    def on_findAction_triggered(self):
         #MatchRegExp 正则查找,MatchRecursive递归遍历,最后是指树表的第几列值
         #本例是 查找第0中 所有开头含有”child“文字的节点
        nodes=self.tree.findItems ("^child[\w|\W]*",Qt.MatchRegExp | Qt.MatchRecursive  ,0)
        for node in nodes :
            QMessageBox.information(self, '', node.text(0))


app = QApplication(sys.argv)
tp = TreeWidget()
tp.show()
app.exec_()

分享到:
评论

相关推荐

    (续)Python3.x+Pyqt5实现主窗体里QToolBox导航栏抽屉效果和树形导航,以及QSplitter用QToolBox导航栏抽屉效果动态载入子窗体

    在本教程中,我们将深入探讨如何使用Python 3.x和PyQt5库来构建一个具有QToolBox导航栏抽屉效果和树形导航的主窗口。QToolBox是PyQt5提供的一种用户界面元素,它允许用户通过下拉菜单或抽屉效果在多个页面之间切换,...

    PyQt5图形界面教程

    在"PyQt5图形界面教程"中,你可以期待学习到以下几个核心知识点: 1. **基本概念**:首先,你需要理解GUI编程的基本概念,如窗口、控件、事件和信号。PyQt5提供了各种控件,如按钮、文本框、菜单等,它们通过事件...

    PyQt快速开发与实战(非源码)

    2. **强大的功能**:PyQt5提供了大量的组件和模块,可以满足各种GUI开发需求,如表格、树形结构、图形界面等。 3. **Python集成**:由于PyQt5是为Python设计的,因此在使用时能够充分利用Python语言的强大特性和灵活...

    PyQt5视频学习51-65.zip

    在PyQt5的学习旅程中,第51到65课是一个重要的阶段,涵盖了大量实用的GUI编程技巧和组件的深入理解。PyQt5是Python语言的一个强大的图形用户界面(GUI)工具包,它基于Qt5库,允许开发者构建美观且功能丰富的桌面...

    StudyDemo:PyQt5的相关教程的例子

    在本教程中,我们将深入探讨PyQt5,一个强大的Python GUI库,用于构建美观且功能丰富的用户界面。PyQt5是Qt库的Python绑定,它提供了丰富的组件和工具,允许开发者轻松创建桌面应用程序。"StudyDemo"是一个示例项目...

    Qt5-Python-GUI-Programming-Cookbook.zip

    总之,《Qt5-Python-GUI-Programming-Cookbook》是一本全面的教程,适合有一定Python基础并希望学习或提高Qt5 GUI开发技能的程序员。通过这本书,你可以系统地学习PyQt5,并掌握构建高效、美观的跨平台应用程序的...

    解决控件动态删除添加

    本教程将深入讲解如何实现这一功能,适合初学者进行学习。 首先,我们要理解Android中的布局和控件。在Android中,我们通常使用XML文件来静态定义界面布局,包括各种控件(如按钮、文本框等)。然而,为了实现动态...

    Python开发垃圾分类查询系统完整项目流程实战_编程案例实例详解课程教程.pdf

    Python有多种GUI库可以选择,如Tkinter、PyQt、wxPython等。在这个项目中,我们将学习如何使用这些库创建窗口,添加输入框让用户输入垃圾名称,以及设置按钮触发查询操作,并将结果显示在窗口的适当位置。 5. **...

    qt for python环境搭建测试程序

    Qt for Python,也被称为PySide2或 PyQt5,是Qt库的Python绑定,允许开发者使用Python语言创建图形用户界面(GUI)应用程序。这个环境的搭建与测试程序是Python开发者进入桌面应用开发领域的重要步骤。下面我们将...

    Handbook of Computer Programming with Python -- 2022.pdf

    《计算机编程手册:Python版》是一本综合性的教程,旨在为学生、教师以及专业人员提供一个全面而深入的学习Python语言及其在各个领域的应用平台。该手册由Dimitrios Xanthidis、Christos Manolas、Ourania K. ...

    Python_语言入门.zip_界面编程_Python__界面编程_Python_

    在本教程中,可能会介绍如何使用Python结合这些库,搭建简单的机器学习模型,例如线性回归、决策树或神经网络。 总的来说,“Python_语言入门.zip”这份资源将带你逐步走进Python的世界,从基础语法到界面编程,再...

    最全的python学习路线图

    Python是一种高级编程语言,以其简洁明了的语法和强大的功能深受程序员...同时,持续关注社区动态,参加编程挑战,阅读相关书籍和教程,提升自己的技能水平。通过这些步骤,你将能够逐步成为一名熟练的Python开发者。

Global site tag (gtag.js) - Google Analytics