[pyar] [PyQt] Problema con actualización de TreeView

Martin Chikilian slacklinucs en gmail.com
Mar Jun 14 17:50:16 ART 2011


Me respondo a mí mismo.

Para solucionar el problema, reimplementé insertRows en el TreeModel con los
siguientes métodos:

def getItem(self, index):
        if index.isValid():
            item = index.internalPointer()
            if item:
                return item

        return self.rootItem

def insertRows(self, position, rows, parent=QtCore.QModelIndex()):
        parentItem = self.getItem(parent)
        self.beginInsertRows(parent, position, position + rows - 1)
        self.endInsertRows()

        return True

Y al actualizar los datos del modelo, llamo al método así:
self.downloads_model.insertRows(self.downloads_model.rowCount(),
len(self.downloads_content))

Espero que sirva el aporte para otro/a que le pase!

Saludos,

Martín

2011/6/13 Martin Chikilian <slacklinucs en gmail.com>

> Gente,
>
> Tengo un problemita con un widget TreeView en un programa. El asunto es
> así:
>
> - en la ventana principal tengo un TabWidget con 2 tabs, en cada tab tengo
> un TreeView distinto que cumplen distintas funciones:
> -- el primer TreeView se popula de datos de títulos (eg, películas)
> -- el segundo TreeView se popula de items para bajar
>
> Hay un PushButton que alimenta el segundo TreeView verificando que títulos
> en el primer TreeView están tildados con checkbox.
> El problema surge luego de hacer una primera selección de títulos (o
> items), clickeo el botón y llena el segundo TreeView (hasta ahí bien).
> Cuando voy al segundo tab para ver ese TreeView de downloads, veo lo que
> agregué (sigue bien). Vuelvo al primer tab, busco otra cosa en el programa,
> ese primer TreeView se popula con nuevos elementos o títulos, y cuando
> tildo varios y hago click en el botón, el segundo TreeView no muestra los
> nuevos items
> a descargar.
>
> Puse un statement de control e informativo que hace un print del elemento
> que se está agregando al modelo conectado con la vista y resulta que figuran
> todos los datos
> que yo quiero mostrar en el view, es decir, están en el modelo.
>
> Lo que me pude dar cuenta es que sólamente sucede cuando voy a "ver" el
> listado de descargas, o sea, muestro el segundo tab de mi TabWidget. Si
> nunca hago click en el
> segundo tab, puedo seguir agregando descargas y se muestran todas al verlas
> en el árbol, comenzando así el inconveniente.
>
> A alguien le pasó esto? Qué podría ser?
>
> El código pertinente está en http://pastebin.lugmen.org.ar/6616
>
> Saludos y gracias desde ya,
>
> Martín
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20110614/95d79dc6/attachment.html>


More information about the pyar mailing list