Escribo un reproductor de música en python, con un cli usando urwid. Tengo la intención de tener la lista de reproducción actual en un SimpleListWalker, envuelto por un cuadro de lista, luego columnas, un montón, y finalmente un marco.Cambiando los contenidos del cuadro de lista que se muestra actualmente en urwid/python2.6
¿Cómo reemplazo todo el contenido de este listbox (o simpleListWalker) con algo más?
código relevante:
class mainDisplay(object):
...
def renderList(self):
songList = db.getListOfSongs()
songDictList = [item for item in songList if item['location'] in
commandSh.currentPlaylists[commandSh.plyr.currentList]]
self.currentSongWidgets = self.createList(songDictList)
self.mainListContent = urwid.SimpleListWalker([urwid.AttrMap(w, None,
'reveal focus') for w in self.currentSongWidgets])
def initFace(self):#this is the init function that creates the interface
#on startup
...
self.scanPlaylists()
self.renderList()
self.mainList = urwid.ListBox(self.mainListContent)
self.columns = urwid.Columns([self.mainList, self.secondaryList])
self.pile = urwid.Pile([self.columns,
("fixed", 1, self.statusDisplayOne),
("fixed", 1, self.statusDisplayTwo),
("fixed", 1, self.cmdShInterface)], 3)
self.topFrame = urwid.Frame(self.pile)
código completo en: http://github.com/ripdog/PyPlayer/tree/cli - Comprobar main.py de código de la interfaz.
El código está en muy mal estado en este momento, y solo he estado programando durante dos meses. Cualquier sugerencia sobre el estilo del código, el diseño o cualquier otro consejo que pueda tener son muy apreciados.
Sería genial tener esto en docs. – SummerBreeze