Domanda

Venendo dal mondo .NET verso Python e PyQt4. Chiedevo se qualcuno ha familiarità con qualsiasi funzionalità che mi permettesse di collegare dati a oggetti Qt? Per esempio (usando sqlalchemy per i dati):

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

E 'possibile una cosa del genere?

È stato utile?

Soluzione

Una possibilità sarebbe una funzione che restituisce un oggetto lista (o tupla) da una query, e quindi utilizzare che per aggiornare il QListWidget. Ricordate che i QListWidget negozi QListStrings. La vostra funzione di aggiornamento potrebbe essere simile a questo:

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) 

Altri suggerimenti

Anche se non è una sostituzione diretta, si potrebbe trovare utile guardare la classe QDataWidgetMapper:

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

Se non hai paura di leggere il codice C ++, questo esempio potrebbe anche rivelarsi utile:

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

Si noti che il mapper opera all'interno quadro Model / View di Qt. In questo esempio, il modello sembra appena essere un modello di database SQL.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top