[wxPython] como enlazar un archivo py al padre?

Iniciado por royer14, Julio 03, 2018, 01:09:10 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Hola en en wxpython he creado una ventana en archivo No tienes permitido ver los links. Registrarse o Entrar a mi cuenta, abajo esta el codigo.
Código: python

import wx
import wx.xrc
#from accion import evento

class MyFrame(wx.Frame):
    def __init__(self, parent):
        wx.Frame.__init__(self, parent, id=wx.ID_ANY, title=u"Muestra", pos=wx.DefaultPosition, size=wx.Size(500, 300),
                          style=wx.DEFAULT_FRAME_STYLE | wx.TAB_TRAVERSAL)

        self.SetSizeHints(wx.DefaultSize, wx.DefaultSize)

        bSizer1 = wx.BoxSizer(wx.VERTICAL)

        self.texto = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0)
        bSizer1.Add(self.texto, 0, wx.ALIGN_CENTER | wx.ALL, 5)

        self.buton = wx.Button(self, wx.ID_ANY, u"ejecutar", wx.DefaultPosition, wx.DefaultSize, 0)
        bSizer1.Add(self.buton, 0, wx.ALIGN_CENTER | wx.ALL, 5)

        self.SetSizer(bSizer1)
        self.Layout()

        self.Centre(wx.BOTH)

        # Connect Events
        self.buton.Bind(wx.EVT_BUTTON, self.iniciar)

    def __del__(self):
        pass

    # Virtual event handlers, overide them in your derived class
    def iniciar(self, event):
        #clase = evento()
        #clase.evento()    quiero ejecutar desde otro py


if __name__ == "__main__":
    app = wx.App(False)
    frame = MyFrame(None)
    frame.Show()
    app.MainLoop()


Como se han dado cuenta, en:
Código: python
def iniciar(self, event):

todas las acciones que se encuentran dentro de esta definicion, quiero que se ejecute desde otro py archivo.
por ejemplo: #from accion import evento
contiene algunas acciones
el archivo No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Código: python
def evento(self):
    texto = self.self.texto.GetLineText(0)
    print(texto)

podrian ayudarme?, no encuentro un tutorial sobre esta clase de preguntas.
Ahhh tambien me habia olvidado, es necesario crear clases?

Básicamente tu mismo respondiste la pregunta, pero vamos por partes.

Para importar las "acciones" de otra carpeta (y en general módulos) lo que tienes que hacer es crear la carpeta (obviamente) y dentro de ésta colocar un archivo con nombre __init__.py vacío. Éste archivo lo que le va a decir a Python es que dentro de esa carpeta van a haber módulos que va a poder importar.

Así que tu árbol de directorios debería quedar algo así:


con esto en mente, simplemente importamos el módulo, en este caso eventos:

Código: python
from acciones import eventos


Ahora, el código de No tienes permitido ver los links. Registrarse o Entrar a mi cuenta es:

Código: python
def evento(self):
    texto = self.texto.GetLineText(0)
    print(texto)


Dentro del módulo tenemos una función: evento() que recibe un parametroque llamamos self y que va a ser la referencia a la clase donde tiene la GUI, por lo tanto vas a poder modificar ésta clase como si fuera una método de esta clase, puesto que todos los métodos reciben por defecto como primer parámetro la referencia a la clase.

Y ahora sólo nos queda llamar al evento, eso lo hacemos de la siguiente forma:

Código: python
eventos.evento(self)


Del módulo eventos llamamos a la función eventos.

Espero sea lo que estabas preguntando..

Saludos.







No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Oh, interesante, bueno no lo sabia, y si por alguna razón quiero hacer esto
Código: python

Class Prog:
       def__init__:
            #acciones u otro gui diseñado

Crees que sea correcta, bueno quiero trabajar con módulos externos como  su proceso para su funcionamiento se en una clase, por ejemplo PyMuPDF u otro.
Muchas Gracias por tu respuesta, deberías hacer tutoriales en youtube.

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Oh, interesante, bueno no lo sabia, y si por alguna razón quiero hacer esto
Código: python

Class Prog:
       def__init__:
            #acciones u otro gui diseñado

Crees que sea correcta, bueno quiero trabajar con módulos externos como  su proceso para su funcionamiento se en una clase, por ejemplo PyMuPDF u otro.
Muchas Gracias por tu respuesta, deberías hacer tutoriales en youtube.

No entiendo muy bien qué es lo que quieres, hace un tiempo escribí este tutorial No tienes permitido ver los links. Registrarse o Entrar a mi cuenta no usa clases, pero creo que es a lo que te refieres. sino, por favor intenta explicarte algo mejor.

Saludos.







No tienes permitido ver los links. Registrarse o Entrar a mi cuenta