本文整理汇总了Python中idlelib.TreeWidget.TreeNode类的典型用法代码示例。如果您正苦于以下问题:Python TreeNode类的具体用法?Python TreeNode怎么用?Python TreeNode使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了TreeNode类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: TreeCanvas
class TreeCanvas(tk.Canvas):
def __init__(self, master, tagger=None):
tk.Canvas.__init__(self, master)
self.tagger = tagger or Tagger()
self.config(bg='white')
# add scrollbar
self.scrollbar = tk.Scrollbar(master)
self.config(yscrollcommand=self.scrollbar.set)
self.scrollbar.config(command=self.yview)
# pack widgets
self.pack(side=tk.LEFT, expand=tk.YES, fill=tk.BOTH)
self.scrollbar.pack(side=tk.RIGHT, fill=tk.Y)
def wheel(self, event):
if event.num == 5 or event.delta <= -120:
self.yview_scroll(2, 'units')
if event.num == 4 or event.delta >= 120:
self.yview_scroll(-2, 'units')
def show(self, name, data, expanded=False):
self.node = TreeNode(self, None, self.tagger.item(data, name))
self.node.expand()
if expanded:
for item in self.node.children:
self._expand(item)
self.node.update()
def _expand(self, node):
node.expand()
for item in node.children:
self._expand(item)
示例2: StackBrowser
def StackBrowser(root, flist=None, tb=None, top=None):
if top is None:
top = tk.Toplevel(root)
sc = ScrolledCanvas(top, bg="white", highlightthickness=0)
sc.frame.pack(expand=1, fill="both")
item = StackTreeItem(flist, tb)
node = TreeNode(sc.canvas, None, item)
node.expand()
示例3: StackBrowser
def StackBrowser(root, flist = None, tb = None, top = None):
if top is None:
from Tkinter import Toplevel
top = Toplevel(root)
sc = ScrolledCanvas(top, bg='white', highlightthickness=0)
sc.frame.pack(expand=1, fill='both')
item = StackTreeItem(flist, tb)
node = TreeNode(sc.canvas, None, item)
node.expand()
return
示例4: _test
def _test():
import sys
from Tkinter import Tk
root = Tk()
root.configure(bd=0, bg="yellow")
root.focus_set()
sc = ScrolledCanvas(root, bg="white", highlightthickness=0, takefocus=1)
sc.frame.pack(expand=1, fill="both")
item = make_objecttreeitem("sys", sys)
node = TreeNode(sc.canvas, None, item)
node.update()
root.mainloop()
示例5: _object_browser
def _object_browser(parent):
import sys
from tkinter import Tk
root = Tk()
width, height, x, y = list(map(int, re.split('[x+]', parent.geometry())))
root.geometry("+%d+%d"%(x, y + 100))
root.configure(bd=0, bg="yellow")
root.focus_set()
sc = ScrolledCanvas(root, bg="white", highlightthickness=0, takefocus=1)
sc.frame.pack(expand=1, fill="both")
item = make_objecttreeitem("sys", sys)
node = TreeNode(sc.canvas, None, item)
node.update()
root.mainloop()
示例6: remote_stack_viewer
def remote_stack_viewer(self):
from idlelib import RemoteObjectBrowser
oid = self.rpcclt.remotequeue("exec", "stackviewer", ("flist",), {})
if oid is None:
self.tkconsole.root.bell()
return
item = RemoteObjectBrowser.StubObjectTreeItem(self.rpcclt, oid)
from idlelib.TreeWidget import ScrolledCanvas, TreeNode
top = Toplevel(self.tkconsole.root)
theme = idleConf.GetOption('main','Theme','name')
background = idleConf.GetHighlight(theme, 'normal')['background']
sc = ScrolledCanvas(top, bg=background, highlightthickness=0)
sc.frame.pack(expand=1, fill="both")
node = TreeNode(sc.canvas, None, item)
node.expand()
示例7: show
def show(self, name, data, expanded=False):
self.node = TreeNode(self, None, self.tagger.item(data, name))
self.node.expand()
if expanded:
for item in self.node.children:
self._expand(item)
self.node.update()
示例8: createtreemap
def createtreemap(self, tmrootnode=None,sizepropname=SIZE_PROP, clrpropname=CLR_PROP):
del self.childtree
if( tmrootnode != None):
self.tmrootnode = tmrootnode
ftreeroot = ChildTreeItem(self.tmrootnode, self.tmcanvas)
self.childtree = TreeNode(self.treecanvas, None, ftreeroot)
self.childtree.update()
self.childtree.expand()
clrmap = self.getPropClrMap(self.tmrootnode, clrpropname)
self.tmcanvas.set(tmcolormap=clrmap,sizeprop=sizepropname,clrprop=clrpropname,upper=[1200,700],tooltip=self.tooltip)
self.tmcanvas.drawTreemap(self.tmrootnode)
示例9: showDupListTree
def showDupListTree(self):
mtreeroot = DupTreeItem("Duplicate List")
#Add the tree items for various categories like (1-10 lines, 10-100 lines, 101-500 lines, More than 500 lines"
dup500_ = mtreeroot.addChildName("More than 500 lines")
dup101_500 = mtreeroot.addChildName("101-500 lines")
dup11_100 = mtreeroot.addChildName("11-100 lines")
dup1_10 = mtreeroot.addChildName("upto 10 lines")
matchid = 0
matches = self.getMatches()
for matchset in matches:
matchid = matchid+1
matchnode = DupTreeItem("")
lc = 0
for match in matchset:
fname = match.srcfile()
lc = max(lc, match.getLineCount())
start = match.getStartLine()
matchnode.addChildName("%s (line %d - %d)" % (fname, start, start+lc))
matchnode.name = "Match %d (Lines : %d)" % (matchid, lc)
if( lc > 0 and lc <= 10):
dup1_10.addChild(matchnode)
elif( lc >10 and lc <= 100):
dup11_100.addChild(matchnode)
elif( lc >100 and lc < 500):
dup101_500.addChild(matchnode)
else:
dup500_.addChild(matchnode)
for child in mtreeroot.children:
child.name = "%s (count : %d)" % (child.name, len(child.children))
#now create a 'tree display"
self.filetree = TreeNode(self.duplisttree, None, mtreeroot)
self.filetree.update()
self.filetree.expand()
示例10: Tk
</Persistence>
</ServiceProfile>
<ServiceProfile>
<IsEnabled>false</IsEnabled>
<Protocol>TCP</Protocol>
<Port/>
<Persistence>
<Method/>
</Persistence>
</ServiceProfile>
<Logging>true</Logging>
<Pool>DCTM-UKHTTPD</Pool>
</VirtualServer>
</LoadBalancerService>
</EdgeGatewayServiceConfiguration>
<HaEnabled>true</HaEnabled>
<UseDefaultRouteForDnsRelay>false</UseDefaultRouteForDnsRelay>
</Configuration>
</EdgeGateway>
'''
root = Tk()
canvas = Canvas(root)
canvas.config(bg='white')
canvas.pack()
dom = parseString(example_data)
item = DomTreeItem(dom.documentElement)
node = TreeNode(canvas, None, item)
node.update()
node.expand()
root.mainloop()
示例11: Solution
self.left = None
self.right = None
class Solution(object):
def maxDepth(self, root):
"""
:type root: TreeNode
:rtype: int
:左右分支的最大深度加1
"""
if root == None:
return 0
else:
return max(self.maxDepth(root.left),self.maxDepth(root.right))+1
t = TreeNode(1)
node1 = TreeNode(2)
node2 = TreeNode(3)
node3 = TreeNode(4)
node4 = TreeNode(5)
node5 = TreeNode(6)
node6 = TreeNode(7)
t.left = node1
t.right = node2
node1.left = node3
node1.right = node4
node2.left = node5
#node3.left = node6
s = Solution()
print s.maxDepth(t)
示例12: App
class App(object):
def __init__(self):
self.root = Tkinter.Tk()
self.root.title("Source Monitor Treemap")
self.initMenu()
self.initDropDown()
self.pane = Tkinter.PanedWindow(self.root, orient=Tkinter.HORIZONTAL)
self.pane.pack(fill=Tkinter.BOTH, expand=1)
self.initTreeCanvas()
self.initTreemapCanvas()
self.filetree = None
def initTreemapCanvas(self):
self.tmcanvas = TreemapSquarified(self.pane, width="13i", height="8i")
self.tmcanvas.config(bg="white")
self.pane.config(bg="blue")
self.pane.add(self.tmcanvas.frame)
self.pane.paneconfigure(self.tmcanvas.frame, sticky=Tkinter.N + Tkinter.S + Tkinter.E + Tkinter.W)
self.tooltip = TkCanvasToolTip(self.tmcanvas, follow=True)
def initTreeCanvas(self):
frame = Tkinter.Frame(self.pane)
self.treecanvas = createScrollableCanvas(frame, width="2i")
self.pane.add(frame)
self.pane.paneconfigure(frame, sticky=Tkinter.N + Tkinter.S + Tkinter.E + Tkinter.W)
def initMenu(self):
menubar = Tkinter.Menu(self.root)
filemenu = Tkinter.Menu(menubar, tearoff=0)
filemenu.add_command(label="Open", command=self.openSMFile)
filemenu.add_command(label="Exit", command=self.root.quit)
menubar.add_cascade(label="File", menu=filemenu)
self.root.config(menu=menubar)
def initDropDown(self):
self.dropdownframe = Tkinter.Frame(self.root)
self.sizeOption = Tkinter.StringVar()
self.sizeOption.set(SIZE_PROP)
self.colorOption = Tkinter.StringVar()
self.colorOption.set(CLR_PROP)
# get the list of options
options = set(SMPROP_MAPPING.itervalues())
# now convert the set to sorted list
options = sorted(options)
self.optionsSize = Tkinter.OptionMenu(self.dropdownframe, self.sizeOption, command=self.optionchange, *options)
self.optionsSize.grid(row=0, column=0)
self.optionsClr = Tkinter.OptionMenu(self.dropdownframe, self.colorOption, command=self.optionchange, *options)
self.optionsClr.grid(row=0, column=1)
self.dropdownframe.pack()
def optionchange(self, param):
sizepropname = self.sizeOption.get()
clrpropname = self.colorOption.get()
self.createtreemap(sizepropname=sizepropname, clrpropname=clrpropname)
def createtreemap(self, tmrootnode=None, sizepropname=SIZE_PROP, clrpropname=CLR_PROP):
del self.filetree
if tmrootnode != None:
self.tmrootnode = tmrootnode
ftreeroot = FileTreeItem(self.tmrootnode, self.tmcanvas)
self.filetree = TreeNode(self.treecanvas, None, ftreeroot)
self.filetree.update()
self.filetree.expand()
clrmap = self.getPropClrMap(self.tmrootnode, clrpropname)
self.tmcanvas.set(
tmcolormap=clrmap, sizeprop=sizepropname, clrprop=clrpropname, upper=[1200, 700], tooltip=self.tooltip
)
self.tmcanvas.drawTreemap(self.tmrootnode)
def getNeutralVal(self, clrpropname, minval, maxval):
neutralval = COLOR_PROP_CONFIG.get(clrpropname)
if neutralval == None:
neutralval = 0.5 * (minval + maxval)
return neutralval
def getPropClrMap(self, tmrootnode, clrpropname):
clrmap = TMColorMap(minclr=(0, 255, 0), maxclr=(255, 0, 0))
minval = tmrootnode.minclr(clrpropname)
maxval = tmrootnode.maxclr(clrpropname)
neutralval = self.getNeutralVal(clrpropname, minval, maxval)
clrmap.setlimits(minval, maxval, neutralval=neutralval)
return clrmap
def openSMFile(self):
filename = tkFileDialog.askopenfilename(
title="Choose Source Monitor output file", filetypes=SMFILEFORMATS, defaultextension=".xml"
)
smtree = SMTree(filename)
self.createtreemap(smtree)
def run(self):
self.root.mainloop()
示例13: __init__
class App:
def __init__(self):
self.root = Tkinter.Tk()
self.root.title("Source Monitor Treemap")
self.initMenu()
self.initDropDown()
self.pane = Tkinter.PanedWindow(self.root, orient=Tkinter.HORIZONTAL)
self.pane.pack(fill=Tkinter.BOTH, expand=1)
self.initTreeCanvas()
self.initTreemapCanvas()
self.childtree = None
def initTreemapCanvas(self):
self.tmcanvas = TreemapSquarified(self.pane,width='13i', height='8i')
self.tmcanvas.config(bg='white')
#self.tmcanvas.grid(column=1,row=1, sticky="nsew")
self.tmcanvas.pack()
self.pane.add(self.tmcanvas.frame)
self.tooltip = TkCanvasToolTip(self.tmcanvas, follow=True)
def initTreeCanvas(self):
frame = Tkinter.Frame(self.pane)
self.treecanvas = createScrollableCanvas(frame, width='2i')
self.treecanvas.pack()
self.pane.add(frame)
def initMenu(self):
menubar = Tkinter.Menu(self.root)
filemenu = Tkinter.Menu(menubar, tearoff=0)
filemenu.add_command(label="Open", command=self.openTreemapFile)
filemenu.add_command(label="Exit", command=self.root.quit)
menubar.add_cascade(label="File", menu=filemenu)
self.root.config(menu=menubar)
def initDropDown(self):
self.dropdownframe = Tkinter.Frame(self.root)
self.sizeOption = Tkinter.StringVar()
self.sizeOption.set(SIZE_PROP)
self.colorOption = Tkinter.StringVar()
self.colorOption.set(CLR_PROP)
#get the list of options
options = ['Field 0', 'Field 1']
self.optionsSize = Tkinter.OptionMenu(self.dropdownframe, self.sizeOption,command=self.optionchange, *options)
self.optionsSize.grid(row=0, column=0)
self.optionsClr = Tkinter.OptionMenu(self.dropdownframe,self.colorOption,command=self.optionchange, *options)
self.optionsClr.grid(row=0, column=1)
self.dropdownframe.pack()
def optionchange(self, param):
sizepropname = self.sizeOption.get()
clrpropname = self.colorOption.get()
self.createtreemap(sizepropname=sizepropname, clrpropname=clrpropname)
def createtreemap(self, tmrootnode=None,sizepropname=SIZE_PROP, clrpropname=CLR_PROP):
del self.childtree
if( tmrootnode != None):
self.tmrootnode = tmrootnode
ftreeroot = ChildTreeItem(self.tmrootnode, self.tmcanvas)
self.childtree = TreeNode(self.treecanvas, None, ftreeroot)
self.childtree.update()
self.childtree.expand()
clrmap = self.getPropClrMap(self.tmrootnode, clrpropname)
self.tmcanvas.set(tmcolormap=clrmap,sizeprop=sizepropname,clrprop=clrpropname,upper=[1200,700],tooltip=self.tooltip)
self.tmcanvas.drawTreemap(self.tmrootnode)
def getNeutralVal(self, clrpropname, minval, maxval):
#neutralval = 0.5*(minval+maxval)
neutralval = 15
return(neutralval)
def getPropClrMap(self,tmrootnode, clrpropname):
clrmap = TMColorMap(minclr=(0,255,0),maxclr=(255,0,0))
minval = tmrootnode.minclr(clrpropname)
maxval = tmrootnode.maxclr(clrpropname)
neutralval = self.getNeutralVal(clrpropname, minval, maxval)
clrmap.setlimits(minval,maxval, neutralval=neutralval)
return(clrmap)
def openTreemapFile(self):
filename = tkFileDialog.askopenfilename(title="Choose Treemap CSV file", defaultextension=".csv")
tmtree = TMTree(filename)
self.createtreemap(tmtree)
def run(self):
self.root.mainloop()
示例14: __init__
#.........这里部分代码省略.........
lcinfodict = dict()
for fname in filelist:
with open(fname, "r") as f:
lines = f.readlines()
lcinfodict[fname] = len(lines)
return(lcinfodict)
def makeTree(self):
matchlcinfo = self.getMatchLcInfo()
lcinfo = self.getLcInfo()
tmrootnode = TreemapNode("Duplication Map - ")
for fname, lc in lcinfo.iteritems():
namelist = fname.split(os.sep)
node = tmrootnode.addChild(namelist)
node.setProp(SIZE_PROP, lc)
node.setProp(CLR_PROP, matchlcinfo.get(fname, 0))
node.setProp('filename', fname)
tmrootnode.MergeSingleChildNodes('/')
return(tmrootnode)
def getDupsInFile(self,fname):
if( self.dupsInFile == None):
matches = self.getMatches()
self.dupsInFile = dict()
for matchset in matches:
for match in matchset:
fname = match.srcfile()
duplist = self.dupsInFile.get(fname, [])
duplist.append((match.getStartLine(), match.getLineCount()))
self.dupsInFile[fname] = duplist
return(self.dupsInFile.get(fname, None))
def showDupListTree(self):
mtreeroot = DupTreeItem("Duplicate List")
#Add the tree items for various categories like (1-10 lines, 10-100 lines, 101-500 lines, More than 500 lines"
dup500_ = mtreeroot.addChildName("More than 500 lines")
dup101_500 = mtreeroot.addChildName("101-500 lines")
dup11_100 = mtreeroot.addChildName("11-100 lines")
dup1_10 = mtreeroot.addChildName("upto 10 lines")
matchid = 0
matches = self.getMatches()
for matchset in matches:
matchid = matchid+1
matchnode = DupTreeItem("")
lc = 0
for match in matchset:
fname = match.srcfile()
lc = max(lc, match.getLineCount())
start = match.getStartLine()
matchnode.addChildName("%s (line %d - %d)" % (fname, start, start+lc))
matchnode.name = "Match %d (Lines : %d)" % (matchid, lc)
if( lc > 0 and lc <= 10):
dup1_10.addChild(matchnode)
elif( lc >10 and lc <= 100):
dup11_100.addChild(matchnode)
elif( lc >100 and lc < 500):
dup101_500.addChild(matchnode)
else:
dup500_.addChild(matchnode)
for child in mtreeroot.children:
child.name = "%s (count : %d)" % (child.name, len(child.children))
#now create a 'tree display"
self.filetree = TreeNode(self.duplisttree, None, mtreeroot)
self.filetree.update()
self.filetree.expand()
def tmLeafnodeCallback(self, node, tmcanvas, canvasid,lower,upper):
'''
draw the approx positions for the duplicates in 'dark brown' color on the
canvas rectangles of that file.
'''
width = upper[0]-lower[0]
height = float(upper[1]-lower[1])
if( width > 4 and height > 2):
fname = node.getProp('filename')
assert(fname != None)
dupsinfile = self.getDupsInFile(fname)
#if dupsinfile is None, then there are no duplicates in file
if( dupsinfile != None):
fsize = float(node.getSize(SIZE_PROP))
x = lower[0]
y = lower[1]
#show small magenta coloured strip of 4 pixels (rectwd) to represent the location
#of duplication.
rectwd = 4
for startline, linecount in dupsinfile:
rectht = int(height*(float(linecount)/fsize)+0.5)
if( rectht > 1):
rectstart = int(height*(float(startline)/fsize)+0.5)
#draw rectangle with 'magenta' color fill and no border (border width=0)
tmcanvas.create_rectangle(x+2, y+rectstart, x+rectwd+2, y+rectstart+rectht,
fill='magenta',width=0)
示例15: Tk
try:
from Tkinter import Tk
except ImportError:
from tkinter import Tk
from idlelib.TreeWidget import ScrolledCanvas, FileTreeItem, TreeNode
import os
root = Tk()
root.title("Test TreeWidget")
sc = ScrolledCanvas(root, bg="white", highlightthickness=0, takefocus=1)
sc.frame.pack(expand=1, fill="both", side="left")
item = FileTreeItem(os.getcwd())
node = TreeNode(sc.canvas, None, item)
node.expand()
root.mainloop()