Moved and reorganized wxPython directories
Now builds into an intermediate wxPython package directory before installing git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_2_BRANCH@7403 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
87
wxPython/tests/txml.py
Normal file
87
wxPython/tests/txml.py
Normal file
@@ -0,0 +1,87 @@
|
||||
"""
|
||||
Build a GUI Tree (wxWindows) from an XML file
|
||||
using pyExpat
|
||||
"""
|
||||
|
||||
import sys,string
|
||||
from xml.parsers import pyexpat
|
||||
|
||||
from wxPython.wx import *
|
||||
|
||||
class MyFrame(wxFrame):
|
||||
def __init__(self, parent, id, title):
|
||||
wxFrame.__init__(self, parent, id, title, wxPoint(100, 100), wxSize(160,100))
|
||||
menu = wxMenu()
|
||||
menu.Append (1001,"Open")
|
||||
menu.Append (1002,"Close")
|
||||
menu.Append (1003,"Exit")
|
||||
menubar = wxMenuBar()
|
||||
menubar.Append (menu,"File")
|
||||
self.SetMenuBar(menubar)
|
||||
|
||||
class MyApp(wxApp):
|
||||
def OnInit(self):
|
||||
self.frame = MyFrame(NULL, -1, "Tree View of XML")
|
||||
self.tree = wx.wxTreeCtrl(self.frame, -1)
|
||||
EVT_MENU(self, 1001, self.OnOpen)
|
||||
EVT_MENU(self, 1002, self.OnClose)
|
||||
EVT_MENU(self, 1003, self.OnExit)
|
||||
self.frame.Show(true)
|
||||
self.SetTopWindow(self.frame)
|
||||
return true
|
||||
|
||||
def OnOpen(self,event):
|
||||
f = wxFileDialog(self.frame,"Select a file",".","","*.xml",wxOPEN)
|
||||
if f.ShowModal() == wxID_OK:
|
||||
LoadTree(f.GetPath())
|
||||
|
||||
def OnClose(self,event):
|
||||
self.tree = wx.wxTreeCtrl(self.frame, -1)
|
||||
pass
|
||||
|
||||
def OnExit(self,event):
|
||||
self.OnCloseWindow(event)
|
||||
|
||||
def OnCloseWindow(self, event):
|
||||
self.frame.Destroy()
|
||||
|
||||
|
||||
NodeStack = []
|
||||
|
||||
# Define a handler for start element events
|
||||
def StartElement( name, attrs ):
|
||||
global NodeStack
|
||||
NodeStack.append(app.tree.AppendItem(NodeStack[-1],name))
|
||||
|
||||
def EndElement( name ):
|
||||
global NodeStack
|
||||
NodeStack = NodeStack[:-1]
|
||||
|
||||
def CharacterData ( data ):
|
||||
global NodeStack
|
||||
if string.strip(data):
|
||||
app.tree.AppendItem(NodeStack[-1],data)
|
||||
|
||||
|
||||
def LoadTree (f):
|
||||
print f
|
||||
# Create a parser
|
||||
Parser = pyexpat.ParserCreate()
|
||||
|
||||
# Tell the parser what the start element handler is
|
||||
Parser.StartElementHandler = StartElement
|
||||
Parser.EndElementHandler = EndElement
|
||||
Parser.CharacterDataHandler = CharacterData
|
||||
|
||||
# Parse the XML File
|
||||
ParserStatus = Parser.Parse(open(f,'r').read(), 1)
|
||||
if ParserStatus == 0:
|
||||
print "oops!"
|
||||
raise SystemExit
|
||||
|
||||
app = MyApp(0)
|
||||
NodeStack = [app.tree.AddRoot("Root")]
|
||||
|
||||
|
||||
app.MainLoop()
|
||||
raise SystemExit
|
Reference in New Issue
Block a user