Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/01/2010, 09:56
Nano-rosario
 
Fecha de Ingreso: abril-2008
Mensajes: 68
Antigüedad: 16 años, 8 meses
Puntos: 0
Crear eventos ¿?

bueno la verdad es que ya estoy preguntando todo! pero no me funciona... estoy perdido en python...

este es el codigo de mi frame

lo que busco es crear un evento cuando se hace doble click con el boton izquierdo del mouse o se presiona entrer sobre un nodo del tree.
que imprima que asigne el nombre a una variable cualquier cosa, quiero ver como se haria y despues lo adapto, en realidad cada nodo abre un formulario diferente, osea una clase.

Código:
import wx
import md.mdDB

class frm_main(wx.Frame):
    def __init__(self, *args, **kwds):
        kwds["style"] = wx.DEFAULT_FRAME_STYLE
        wx.Frame.__init__(self, *args, **kwds)
        self.window_1 = wx.SplitterWindow(self, -1, style=wx.SP_3D|wx.SP_BORDER)
        self.window_1_pane_1 = wx.Panel(self.window_1, -1)

        self.tree = wx.TreeCtrl(self.window_1_pane_1, -1, style=wx.TR_HAS_BUTTONS|wx.TR_HIDE_ROOT|wx.TR_DEFAULT_STYLE)
        
        self.window_1_pane_2 = wx.Panel(self.window_1, -1)
        self.frame_1_statusbar = self.CreateStatusBar(1, 0)
        
        # Tool Bar
        self.frame_1_toolbar = wx.ToolBar(self, -1, style=wx.TB_HORIZONTAL|wx.TB_3DBUTTONS|wx.TB_TEXT)
        self.SetToolBar(self.frame_1_toolbar)
        self.frame_1_toolbar.AddLabelTool(1, "Config", wx.Bitmap("C:\\Documents and Settings\\podio\\Escritorio\\MARIANO\\fugue-icons-2.0\\icon\\address-book-open.png", wx.BITMAP_TYPE_ANY), wx.NullBitmap, wx.ITEM_NORMAL, "", "")
        # Tool Bar end
        
        # Menu Bar
        self.frame_1_menubar = wx.MenuBar()
        self.SetMenuBar(self.frame_1_menubar)
        # Menu Bar end

        self.__set_properties()
        self.__do_layout()
        # end wxGlade
        


    def __set_properties(self):
        self.SetTitle("SM ERP")
        _icon = wx.EmptyIcon()
        #_icon.CopyFromBitmap(wx.Bitmap("C:\\Documents and Settings\\podio\\Escritorio\\MARIANO\\SM_ERP-local\\version mariano\\recursos\\16 x 16\\update.ico", wx.BITMAP_TYPE_ANY))
        self.SetIcon(_icon)
        self.frame_1_statusbar.SetStatusWidths([-1])
        # statusbar fields
        frame_1_statusbar_fields = ["frame_1_statusbar"]
        for i in range(len(frame_1_statusbar_fields)):
            self.frame_1_statusbar.SetStatusText(frame_1_statusbar_fields[i], i)
        self.frame_1_toolbar.Realize()
 
    def __do_layout(self):
        sizer_1 = wx.GridSizer(1, 1, 0, 0)
        sizer_2 = wx.BoxSizer(wx.HORIZONTAL)
        sizer_2.Add(self.tree, 1, wx.EXPAND, 0)
        self.window_1_pane_1.SetSizer(sizer_2)
        self.window_1.SplitVertically(self.window_1_pane_1, self.window_1_pane_2)
        sizer_1.Add(self.window_1, 1, wx.EXPAND, 0)
        self.SetSizer(sizer_1)
        sizer_1.Fit(self)
        self.Layout()
        self.Centre()
        # end wxGlade

# end of class frm_main
#
class  Tnodo (object):
    instance = None      
    def __new__(cls, *args, **kargs):
        if cls.instance is None:
            cls.instance = object.__new__(cls, *args, **kargs)
        return cls.instance
    
def AgregaFO(parent,chield,nod):
    nodo = Tnodo()
    conn = md.mdDB.GestorBD()    
    sql="Select Id,Nombre From SM_FO where parent ='%s'" % parent
    resultado= conn.execute(sql)
    for registro in resultado:
        if chield == "0":
            nodo = frame_1.tree.AppendItem(root,registro[1])
        else: 
            nodo = frame_1.tree.AppendItem(nod,registro[1])
        AgregaFO(registro[0],"1",nodo) 
        
def Show():
    global frame_1,root
    app = wx.PySimpleApp(0)
    wx.InitAllImageHandlers()
    frame_1 = frm_main(None, -1, "")
    app.SetTopWindow(frame_1)
    root = frame_1.tree.AddRoot('root')
    frame_1.tree.SetItemHasChildren(root)
    AgregaFO("0","0",root)
    frame_1.Show()
    app.MainLoop()
el resultado:



saludos