从.NET世界到Python和PyQt4。想知道是否有人熟悉允许我将数据绑定到Qt小部件的任何功能?例如(使用sqlalchemy作为数据):
gems = session.query(Gem).all()
list = QListWidget()
list.datasource = gems
这样的事情可能吗?
答案 0 :(得分:4)
虽然不是直接替换,但您可能会发现查看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数据库模型。
答案 1 :(得分:3)
一个选项将具有从查询返回列表(或元组)对象的函数,然后使用它来更新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)