Cargar Arbol

César Hernández dpcesar en gmail.com
Mie Jul 19 20:11:00 CEST 2006


Gracias Mario Lacunza por el dato :)

Verifique el demo existen solo dos ejemplos para el TreeCtrl

pyTree.py
SplitTree.py

de ellos he tomado parte del codigo SplitTree.py me presento algunos
problemas por la instrucción: "import images"  investigue un poco y llegue a
la conclusión erronea de que me faltaba un modulo por instalar en python,
creyendo que era el PIL me lo baje (
http://www.pythonware.com/products/pil/index.htm) y lo instale... mellejua
perdida de tiempo...

Bueno, finalmente solucione y pude hacer ejecutar torpemente una rutina de
prueba, lo que no comprendo muy bien es porque pareciera no utilizar el
Widgets que cree con el wxGlade y crea uno nuevo... (bueno tal vez no sea
uno nuevo, pero pareciera estar sobre el otro)

alguna sugerencia, el codigo completo a continuación:


#!/usr/bin/env python
# -*- coding: ISO-8859-1 -*-
# generated by wxGlade 0.4.1 on Tue Jul 11 14:26:46 2006

import wx

import sys, os, time, string
from   wxPython.wx import *
from   wxPython.gizmos import *

class MyFrame1(wx.Frame):
    def __init__(self, *args, **kwds):
        # begin wxGlade: MyFrame1.__init__
        kwds["style"] =
wx.ICONIZE|wx.CAPTION|wx.MINIMIZE|wx.CLOSE_BOX|wx.MINIMIZE_BOX|wx.MAXIMIZE_BOX|wx.SYSTEM_MENU|wx.RESIZE_BORDER|wx.CLIP_CHILDREN
        wx.Frame.__init__(self, *args, **kwds)

        # Menu Bar
        self.menuprincipal = wx.MenuBar()
        self.SetMenuBar(self.menuprincipal)
        wxglade_tmp_menu = wx.Menu()
        wxglade_tmp_menu.Append(wx.NewId(), "Establecer Impresora", "",
wx.ITEM_NORMAL)
        wxglade_tmp_menu.AppendSeparator()
        wxglade_tmp_menu.Append(wx.NewId(), "Buscar Actualizaciones", "",
wx.ITEM_NORMAL)
        wxglade_tmp_menu.AppendSeparator()
        wxglade_tmp_menu.Append(wx.NewId(), "item", "", wx.ITEM_NORMAL)
        self.menuprincipal.Append(wxglade_tmp_menu, "Archivo")
        wxglade_tmp_menu = wx.Menu()
        wxglade_tmp_menu.Append(wx.NewId(), "Pegar", "", wx.ITEM_NORMAL)
        wxglade_tmp_menu.Append(wx.NewId(), "Copiar", "", wx.ITEM_NORMAL)
        wxglade_tmp_menu.Append(wx.NewId(), "Cortar", "", wx.ITEM_NORMAL)
        wxglade_tmp_menu.AppendSeparator()
        wxglade_tmp_menu.Append(wx.NewId(), "Buscar Item", "",
wx.ITEM_NORMAL)
        self.menuprincipal.Append(wxglade_tmp_menu, u"Edición")
        wxglade_tmp_menu = wx.Menu()
        wxglade_tmp_menu.Append(wx.NewId(), "Ayuda en linea", "",
wx.ITEM_NORMAL)
        wxglade_tmp_menu.Append(wx.NewId(), "Visite nuestra web", "",
wx.ITEM_NORMAL)
        wxglade_tmp_menu.AppendSeparator()
        wxglade_tmp_menu.Append(wx.NewId(), "Acerca de . . .", "",
wx.ITEM_NORMAL)
        self.menuprincipal.Append(wxglade_tmp_menu, "Ayuda")
        # Menu Bar end
        self.barra_estatus = self.CreateStatusBar(4, 0)

        # Tool Bar
        self.BarradeHerramientas = wx.ToolBar(self, -1, style=
wx.TB_HORIZONTAL|wx.TB_FLAT|wx.TB_3DBUTTONS|wx.TB_TEXT|wx.TB_NODIVIDER|wx.TB_HORZ_LAYOUT|wx.TB_HORZ_TEXT
)
        self.SetToolBar(self.BarradeHerramientas)
        self.BarradeHerramientas.AddLabelTool(100, "Imprimir",
wx.Bitmap("C:\\tucuman\\imagen\\hrr_print.png",
wx.BITMAP_TYPE_ANY), wx.NullBitmap, wx.ITEM_NORMAL, "Imprimir", "Establecer
Impresora")
        self.BarradeHerramientas.AddLabelTool(200, "Buscar",
wx.Bitmap("C:\\tucuman\\imagen\\lupa.png",
wx.BITMAP_TYPE_ANY), wx.NullBitmap, wx.ITEM_NORMAL, "Buscar", "Busqueda
Avanzada")
        # Tool Bar end
        self.arbol = wx.TreeCtrl(self, -1, style=
wx.TR_HAS_BUTTONS|wx.TR_LINES_AT_ROOT|wx.TR_DEFAULT_STYLE|wx.SUNKEN_BORDER)
        self.txt_partida = wx.TextCtrl(self, -1, "", style=wx.TE_MULTILINE)
        self.txt_descrip = wx.TextCtrl(self, -1, "", style=wx.TE_MULTILINE)
        self.list_box_1 = wx.ListBox(self, -1, choices=[], style=
wx.LB_MULTIPLE)
        self.lbx_caif = wx.ListBox(self, -1, choices=[])
        self.lsb_contabilidad = wx.ListBox(self, -1, choices=[])

        self.__set_properties()
        self.__do_layout()

        self.arbol = TestTree(self.arbol, -1)

        self.Bind(wx.EVT_TOOL, self.hrr_imprimir, id=100)
        self.Bind(wx.EVT_TOOL, self.hrr_buscar, id=200)
        # end wxGlade

    def __set_properties(self):
        # begin wxGlade: MyFrame1.__set_properties
        self.SetTitle("..: Tucuman :..")
        self.SetSize((454, 542))
        self.barra_estatus.SetStatusWidths([80, 100, 35, 100])
        # statusbar fields
        barra_estatus_fields = [" Tucuman", u" Versión 0001.0001", " 2007",
"PostgreSQL - Local "]
        for i in range(len(barra_estatus_fields)):
            self.barra_estatus.SetStatusText(barra_estatus_fields[i], i)
        self.BarradeHerramientas.SetToolBitmapSize((40, 30))
        self.BarradeHerramientas.Realize()
        self.arbol.SetBackgroundColour(wx.Colour(249, 255, 180))
        self.arbol.SetToolTipString("Clasificador Presupuestario")
        # end wxGlade

    def __do_layout(self):
        # begin wxGlade: MyFrame1.__do_layout
        sizerPricipal = wx.BoxSizer(wx.VERTICAL)
        sizer_3 = wx.BoxSizer(wx.HORIZONTAL)
        sizer_1 = wx.BoxSizer(wx.HORIZONTAL)
        sizer_2 = wx.BoxSizer(wx.VERTICAL)
        sizer_1.Add(self.arbol, 1, wx.ALL|wx.EXPAND, 0)
        sizer_2.Add(self.txt_partida, 1, wx.ALL|wx.EXPAND|wx.ADJUST_MINSIZE,
0)
        sizer_2.Add(self.txt_descrip, 2, wx.ALL|wx.EXPAND|wx.ADJUST_MINSIZE,
0)
        sizer_2.Add(self.list_box_1, 0, wx.ALL|wx.EXPAND|wx.ADJUST_MINSIZE,
0)
        sizer_1.Add(sizer_2, 1, wx.EXPAND, 0)
        sizerPricipal.Add(sizer_1, 1, wx.EXPAND, 0)
        sizer_3.Add(self.lbx_caif, 1, wx.ALL|wx.EXPAND|wx.ADJUST_MINSIZE, 0)
        sizer_3.Add(self.lsb_contabilidad, 1,
wx.ALL|wx.EXPAND|wx.ADJUST_MINSIZE, 0)
        sizerPricipal.Add(sizer_3, 1, wx.EXPAND, 0)
        self.SetAutoLayout(True)
        self.SetSizer(sizerPricipal)
        self.Layout()
        # end wxGlade

    def Imprimir(self,evento=None):
        # inicio wxGlade: Ventana de imprimir
          data = wxPrintDialogData()
          data.EnablePrintToFile(true)
          data.EnablePageNumbers(true)
          data.EnableSelection(true)
          dlg = wxPrintDialog(self, data)
          if dlg.ShowModal() == wxID_OK:
            print ""
          dlg.Destroy()
        # Fin wxGlade

    def hrr_imprimir(self, event): # wxGlade: MyFrame1.<event_handler>
        self.Imprimir(self)
        event.Skip()

    def hrr_buscar(self, event): # wxGlade: MyFrame1.<event_handler>
        data = wxFindReplaceData()
        dlg = wxFindReplaceDialog(self, data, "Find")
        dlg.data = data  # save a reference to it...
        dlg.Show(true)
        event.Skip()

# end of class MyFrame1

class TestTree(wxRemotelyScrolledTreeCtrl):
    def __init__(self, parent, ID, pos=wxDefaultPosition,
size=wxDefaultSize,
                 style=wxTR_HAS_BUTTONS):
        wxRemotelyScrolledTreeCtrl.__init__(self, parent, ID, pos, size,
style)

        # Add some items
        root = self.AddRoot("PUCG -2007")
        for i in range(1,9):
            item = self.AppendItem(root, "4.0%d" % i)
            for j in range(10):
                child = self.AppendItem(item, "4.0%d.00" % i)

        self.Expand(root)

class MyApp(wx.App):
    def OnInit(self):
        wx.InitAllImageHandlers()
        Principal = MyFrame1(None, -1, "")
        self.SetTopWindow(Principal)
        Principal.Show()
        return 1

# end of class MyApp

if __name__ == "__main__":
    app = MyApp(0)
    app.MainLoop()




Más información sobre la lista de distribución Python-es