[Python-es] noob
Ark
cloudneozero en gmail.com
Dom Jul 25 03:56:54 CEST 2010
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/
>
Más información sobre la lista de distribución Python-es