wxPython treeCtrl树节点递归遍历(复制)

下面是递归遍历、获取树节点的方法。

 1     def getTreeAllText(self):
 2         ‘‘‘获取树控件的全部文本‘‘‘
 3         result = []
 4         treeRoot = self.treeCtrl.GetRootItem()
 5         rootText = self.treeCtrl.GetItemText(treeRoot)
 6         result.append(u‘┌‘+rootText)
 7         def recursivelyGetTreeItem(tree,leval):
 8             ‘‘‘ 递归遍历TreeCtrl的所有孩子 ‘‘‘
 9             (item,cookie) = self.treeCtrl.GetFirstChild(tree)
10             while item.IsOk():
11                 ItemStr = u‘├%s%s‘ % (u‘─‘*leval,self.treeCtrl.GetItemText(item))
12                 result.append(ItemStr)
13                 if self.treeCtrl.GetChildrenCount(item)>0:
14                     leval+=1
15                     recursivelyGetTreeItem(item,leval)
16                     leval-=1
17                 (item,cookie) = self.treeCtrl.GetNextChild(item,cookie)
18
19         leval = 0   #递归的子树层次
20         recursivelyGetTreeItem(treeRoot,leval)
21         return ‘\n‘.join(result)

设置文本内容到剪贴板

1 def CopyToClipboard(text):
2     do = wx.TextDataObject()
3     do.SetText(text.encode(‘gb2312‘))
4     if wx.TheClipboard.Open():
5         wx.TheClipboard.SetData(do)
6         wx.TheClipboard.Close()
7     else:
8         wx.MessageBox("Unable to open the clipboard", "Error")
时间: 2024-12-24 05:41:35

wxPython treeCtrl树节点递归遍历(复制)的相关文章

树的递归遍历

树是一个由n个有限节点组成并具有层次关系的集合,是一种非线性的数据结构.树是由跟节点和它的子树构成,所以树的定义是递归的.二叉树是树的一种,它的特点是至多有两颗字树,并且二叉树的子树也有左右之分,不能互相颠倒. 二叉树常用的遍历方式有三种,即:前序遍历,中序遍历,后序遍历,这三遍历方式的主要却别是访问根结点和遍历左子树.右子树的先后关系不一样. 访问顺序: 前序遍历:根->左->右 中序遍历:左->根->右 后序遍历:左->右->根 下面由树的递归建立和对树进行递归遍历

树节点递归删除--service层

@Service public class ContentCategoryServiceImpl extends BaseServiceImpl<ContentCategory> implements ContentCategoryService { @Override public void deleteContentCategory(Long parentId, Long id) { // 声明存放需要删除的节点的容器 List<Object> ids = new ArrayL

树的非递归遍历——前序、中序、后序

树的递归遍历非常简单,也是写树的遍历时最常用的写法.但是我发现自己对树的非递归遍历并不十分熟悉,所以把三种非递归遍历都写了一遍,以后看到这篇记录博客也可以帮助自己好好回想熟悉一下. Leetcode对应习题:前序,中序,后序. 相对而言,这三种非递归遍历的难度--前序 < 中序 < 后序. 对于第三种(非递归后序遍历)方法,只要稍微调整下第18~19行三个节点push的顺序,就可以实现前中后序的遍历. 树的非递归前序: 1 class Solution { 2 public: 3 vector

树的递归与非递归遍历总结

树的递归遍历遍历很简单,非递归遍历要复杂一些,非递归先序.中序.后序遍历需要用一个辅助栈,而层次遍历则需要一个辅助队列. 树的结构: 1 public class Tree<T> { 2 private T data; 3 private Tree<T> left; 4 private Tree<T> right; 5 ... 6 } 用策略模式定义一个访问工具: 1 public interface Visitor<T> { 2 void process(

java 二叉树 深度优先递归遍历

深度优先遍历二叉树. 1. 中序遍历的递归算法: 若二叉树为空,则算法结束:否则: 中序遍历根结点的左子树: 访问根结点: 中序遍历根结点的右子树. 2. 前序遍历的递归算法: 若二叉树为空,则算法结束,否则: 访问根结点: 前序遍历根结点的左子树: 前序遍历根结点的右子树. 3. 后序遍历的递归算法: 若二叉树为空,则算法结束,否则: 后序遍历根结点的左子树: 后序遍历根结点的右子树: 访问根结点. package com.test6; /**  * 二叉树  *   * 描述: 1.二叉树的

作业 树和森林 遍历(递归/非递归先序,递归/非递归后序,递归层次)

1 #include <iostream> 2 #include"queue.h"//之前写的类 3 #include"stack.h" //之前写的类 4 using namespace std; 5 6 template <class T> 7 class Tree; 8 9 //======================================== 10 // 树节点类声明 11 template <class T>

C# TreeView 树节点:递归显示整个系统盘符文件目录及文件

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows.Forms; using System.IO; namespace Demo { /// <summary> /// 有关对于TreeView节点的填充的相关处理类 /// </summary> class TreeViewUtils { #region 有关将整个系统盘

树的非递归遍历

树是递归定义的,利用递归算法遍历树实现起来比较简单,然而难的是非递归遍历.非递归遍历需要借助栈这一数据结构来完成. 首先定义树的结点和构建链表栈: //定义树的节点 typedef struct Node { int data; struct Node* lchild; struct Node* rchild; }Node; //定义栈节点 typedef struct Stacknode { Node* tnode; struct Stacknode* next; }Stacknode;  /

数据结构 树的遍历(递归遍历)

//树的遍历--递归遍历 #include<stdio.h> #include<stdlib.h> #include<string.h> typedef struct _TreeNode{ //数据域 char data; //指针域 struct _TreeNode * leftchild;//左孩子指针 struct _TreeNode * rightchild;//右孩子指针 }TreeNode, *TreeNodePointer; //先序遍历 void Pri