说明:
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_()
分享到:
相关推荐
在本教程中,我们将深入探讨如何使用Python 3.x和PyQt5库来构建一个具有QToolBox导航栏抽屉效果和树形导航的主窗口。QToolBox是PyQt5提供的一种用户界面元素,它允许用户通过下拉菜单或抽屉效果在多个页面之间切换,...
在"PyQt5图形界面教程"中,你可以期待学习到以下几个核心知识点: 1. **基本概念**:首先,你需要理解GUI编程的基本概念,如窗口、控件、事件和信号。PyQt5提供了各种控件,如按钮、文本框、菜单等,它们通过事件...
2. **强大的功能**:PyQt5提供了大量的组件和模块,可以满足各种GUI开发需求,如表格、树形结构、图形界面等。 3. **Python集成**:由于PyQt5是为Python设计的,因此在使用时能够充分利用Python语言的强大特性和灵活...
在PyQt5的学习旅程中,第51到65课是一个重要的阶段,涵盖了大量实用的GUI编程技巧和组件的深入理解。PyQt5是Python语言的一个强大的图形用户界面(GUI)工具包,它基于Qt5库,允许开发者构建美观且功能丰富的桌面...
在本教程中,我们将深入探讨PyQt5,一个强大的Python GUI库,用于构建美观且功能丰富的用户界面。PyQt5是Qt库的Python绑定,它提供了丰富的组件和工具,允许开发者轻松创建桌面应用程序。"StudyDemo"是一个示例项目...
总之,《Qt5-Python-GUI-Programming-Cookbook》是一本全面的教程,适合有一定Python基础并希望学习或提高Qt5 GUI开发技能的程序员。通过这本书,你可以系统地学习PyQt5,并掌握构建高效、美观的跨平台应用程序的...
本教程将深入讲解如何实现这一功能,适合初学者进行学习。 首先,我们要理解Android中的布局和控件。在Android中,我们通常使用XML文件来静态定义界面布局,包括各种控件(如按钮、文本框等)。然而,为了实现动态...
Python有多种GUI库可以选择,如Tkinter、PyQt、wxPython等。在这个项目中,我们将学习如何使用这些库创建窗口,添加输入框让用户输入垃圾名称,以及设置按钮触发查询操作,并将结果显示在窗口的适当位置。 5. **...
Qt for Python,也被称为PySide2或 PyQt5,是Qt库的Python绑定,允许开发者使用Python语言创建图形用户界面(GUI)应用程序。这个环境的搭建与测试程序是Python开发者进入桌面应用开发领域的重要步骤。下面我们将...
《计算机编程手册:Python版》是一本综合性的教程,旨在为学生、教师以及专业人员提供一个全面而深入的学习Python语言及其在各个领域的应用平台。该手册由Dimitrios Xanthidis、Christos Manolas、Ourania K. ...
在本教程中,可能会介绍如何使用Python结合这些库,搭建简单的机器学习模型,例如线性回归、决策树或神经网络。 总的来说,“Python_语言入门.zip”这份资源将带你逐步走进Python的世界,从基础语法到界面编程,再...
Python是一种高级编程语言,以其简洁明了的语法和强大的功能深受程序员...同时,持续关注社区动态,参加编程挑战,阅读相关书籍和教程,提升自己的技能水平。通过这些步骤,你将能够逐步成为一名熟练的Python开发者。