[Python-es] :)

gonzalo figueroa leviatan en inbox.com
Dom Jul 25 07:08:49 CEST 2010


muchas gracias ark, por tu rapida respuesta y por enceñarme, ya que lo que comentabas no lo sabia.
eh seguido con esto y para el que este interesado comento que la logica era otra, no se hereda la clase principal "visual", sino que se hereda de la clase grafica de la cual se trabaje QDialog,
QWidget o QMainWindow

class reproductor(QtGui.QDialog):
    def __init__(self):
       QtGui.QDialog.__init__(self)
        
asi.Y despues se instancia la clase que se creo que qtdesigner y se puede acceder a sus metodos

        self.ventana = Ui_Dialog()
        self.ventana.setupUi(self)

muchas gracias por tu ayuda. Gracias a ella logre llegar al resultado.


> Hola.
> mmm, no estoy seguro, pero creo que el problema es el siguiente.  En
> efecto, es cierto que listWidget no existe, porque no se ha
> inicializado.  Mira que como la clase reproductor hereda de Ui_dialog
> y sobreescribe su inicializadora (__init__), tienes que invocar la del
> padre, ya que es en esta en la que se inicializa ese atributo
> seguramente.  Tendría que hacer algo como:
> 
> class reproductor(Ui_Dialog):
>     def __init__(self):
>          Ui_Dialog.__init__(self)  # Aquí se crean todos los atributos
> seguramente
>          self.iniciar_xmms()
>          self.llenar_lista()
> 
> También se puede usar super, pero, no es la forma que acostumbre :P.
> 
> Si esto no soluciona tu problema, entonces quizás serviría que
> enviaras el archivo donde esta UI_Dialog.  Para ejemplificar:
> 
> class Padre:
>   def __init__(self):
>      self.attr1 = 1
> 
> class Hijo(Padre):
>     def __init__(self):
>         # en este momento no existe attr1
>         Padre.__init__(self)  # Ahora si existe
>         self.attr2 = 2
> 
> ark
> 
> 
> 2010/7/24 gonzalo figueroa <leviatan en inbox.com>:
>> Buenas tardes
>> Soy nuevo en la lista, siempre me ah gustado python pero nunca había
>> tenido el tiempo para aprender, ahora lo tengo y estoy fascinado con su
>> flexibilidad. En fin, el motivo de este envío es en realidad por que
>> estoy ahora aprendiendo a combinar con pyqt. No se si estoy consultando
>> en el lugar adecuado, pero donde van casi de la mano, decidí a enviar
>> este correo.
>> Quiza para mi la documentación de pyqt no a sido muy clara, y tengo la
>> esperanza de que alguno de ustedes me de una mano. Generalmente la
>> mayoria de los ejemplos de este son con funciones agregadas al mismo
>> archivo generado con pyuic y mis dudas van hacia acceder desde otro
>> archivo, un main.py que cree.
>> 
>> agrego mi main
>> 
>>  1 import sys
>>  2 import os
>>  3 from PyQt4 import QtCore, QtGui
>>  4 from gui import *
>>  5 import xmmsclient
>>  6
>>  7 class reproductor(Ui_Dialog):
>>  8     def __init__(self):
>>  9         self.iniciar_xmms()
>>  10         #self.llenar_lista()
>>  11
>>  12     def iniciar_xmms(self):
>>  13         self.xmms =  xmmsclient.XMMS("miCliente")
>>  14         try:
>>  15             self.xmms.connect(os.getenv("XMMS_PATH"))
>>  16         except IOError, detail:
>>  17             print "Conexion fallida:", detail
>>  18             sys.exit(1)
>>  19         wa = self.xmms.playlist_list_entries()
>>  20         wa.wait()
>>  21         lista = wa.value()
>>  22         pos1 = lista[0]
>>  23         total = len(lista) + pos1-1
>>  24         self.lista_playlist =[]
>>  25         while pos1 < total :
>>  26             na = self.xmms.medialib_get_info(pos1)
>>  27             na.wait()
>>  28             valores = na.value()
>>  29             self.lista_playlist.append(valores['title'])
>>  30             pos1 += 1
>>  31
>>  32
>>  33     def llenar_lista(self):
>>  34         self.listWidget.addItems(self.lista_playlist)
>>  35
>>  36     def repro(self):
>>  37         self.listWidget.addItems(self.lista_playlist)
>>  38         result =self.xmms.playback_start()
>>  39         result.wait()
>>  40
>>  41     def abrir(self):
>>  42         #nada
>>  43     def siguiente(self):
>>  44         self.xmms.playback_tickle()
>>  45
>>  46     def anterior(self):
>>  47         os.system("xmms2 prev")
>>  48
>>  49 def main():
>>  50     app = QtGui.QApplication(sys.argv)
>>  51     Dialog = QtGui.QDialog()
>>  52     ui =  reproductor()
>>  53     ui.setupUi(Dialog)
>>  54     Dialog.show()
>>  55     sys.exit(app.exec_())
>>  56
>>  57 main()
>> 
>> 
>> en la linea 7 tiene el parametro de la clase principal de la aplicacion
>> visual Ui_Dialog
>> llendo al grano la funcion llenar_lista() no funciona, dice que
>> listWidget no existe en la clase reproductor, listWidget es el nombre de
>> un listWidget tal cual, que cree visualmente.
>> pero si funciona dentro de la funcion repro() que es una conexion de un
>> boton.
>> 
>> ando super perdido, ojala alguien pueda ayudarme. Mis disculpas si pyqt
>> no es lo primordial de la lista.
>> Muchas gracias.
>> 
>> ____________________________________________________________
>> Publish your photos in seconds for FREE
>> TRY IM TOOLPACK at http://www.imtoolpack.com/default.aspx?rc=if4
>> _______________________________________________
>> Python-es mailing list
>> Python-es en python.org
>> http://mail.python.org/mailman/listinfo/python-es
>> FAQ: http://python-es-faq.wikidot.com/
>> 
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/

____________________________________________________________
Send your photos by email in seconds...
TRY FREE IM TOOLPACK at http://www.imtoolpack.com/default.aspx?rc=if3
Works in all emails, instant messengers, blogs, forums and social networks.


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