Llevo unas horas dando vueltas a esto, así que espero que alguien pueda ayudar. Estoy familiarizado con VB, C #, pero no Python - y luchando para hacer algo bastante simple.
He creado un formulario utilizando QT Designer. En este formulario hay un widget QlistView y un botón "Browse...". Quiero ser capaz de seleccionar los archivos haciendo clic en el botón, y la lista de estos en el QlistView. Debería ser bastante fácil.
En los lenguajes con los que estoy familiarizado haría referencia al objeto QlistView usando una sintaxis como [nombre del formulario].[nombre del control] pero no se puede hacer eso aquí, aparentemente.
Tengo self.dlg
en el propio formulario.
El widget de la lista es un QlistWidget, con el nombre listWidget
.
Estoy usando el siguiente código para manejar el clic del botón:
def handleBrowseButton(self):
pth =os.path.normpath('E:')
filter = "TXT (*.txt)"
file_name = QtGui.QFileDialog()
file_name.setFileMode(3) # 3=existing files
names = file_name.getOpenFileNames(None, "Open files", pth, filter)
if not names:
print "CANCELLED"
return
l = self.dlg.findChild(listWidget)
...pero me he atascado un poco en la última parte. ¿Tengo que usar findChild / findChildren / algo más?
El código anterior sí se ejecuta, así que no tengo problemas para llegar a ese punto. El problema es sólo cómo establecer una referencia al objeto listWidget en el formulario para poder referirse a él a partir de ese momento.
Mi intención es establecer 'l' para referirse al listWidget y luego hacer algo como
l.list.additem(filename)