PyQt4:数据绑定?

问题描述:

从.NET世界到Python和PyQt4。想知道是否有人熟悉任何可以将数据绑定到Qt小部件的功能?例如(使用sqlalchemy的数据):PyQt4:数据绑定?

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

这样的事情可能吗?

一个选项会有一个函数从查询中返回一个列表(或元组)对象,然后用它来更新QListWidget。请记住,QListWidget存储QListStrings。您更新功能可能是这样的:

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) 

虽然不是直接的替代品,你会发现它看QDataWidgetMapper类有用:

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

如果你不害怕的阅读C++代码,这个例子也可以证明是有用的:

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

注日映射器在Qt的Model/View框架中运行。在这个例子中,模型恰好是一个SQL数据库模型。