Pergunta

Vindo do mundo .NET sobre a Python e PyQt4. Queria saber se alguém está familiarizado com qualquer funcionalidade que permita-me para ligar dados a Qt? Por exemplo (usando sqlalchemy para dados):

gems = session.query(Gem).all()
list = QListWidget()
list.datasource = gems

É tal coisa possível?

Foi útil?

Solução

Uma opção teria uma função que retorna uma lista (ou tupla) objeto de uma consulta, e depois usar isso para atualizar o QListWidget. Lembre-se que o QListWidget armazena QListStrings. Sua função de atualização pode ter esta aparência:

def updateQListWidget(qlistwidget, values):
        """ Updates a QListWidget object with a list of values
        ARGS:
            qlistwidget  - QListWidget object
            values       - list of values to add to list widget
        """
        qlistwidget.clear()
        qlist = QtCore.QStringList()
        for v in values:
            s = QtCore.QString(v)
            qlist.append(s)
        qlistwidget.addItems(qlist) 

Outras dicas

Embora não seja um substituto direto, você pode achar que é útil olhar para a classe QDataWidgetMapper:

http://pyqt.sourceforge.net/Docs/PyQt4/qdatawidgetmapper.html

Se você não está com medo de leitura de código C ++, este exemplo pode também revelar-se útil:

https://doc.qt.io/qt -4.8 / qt-sql-sqlwidgetmapper-example.html

Note que o mapeador opera dentro do quadro Model / View do Qt. Neste exemplo, o modelo só acontece de ser um modelo de banco de dados SQL.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top