從.NET世界到Python和PyQt4。想知道是否有人熟悉任何可以將數據綁定到Qt小部件的功能?例如(使用sqlalchemy的數據):PyQt4:數據綁定?
gems = session.query(Gem).all()
list = QListWidget()
list.datasource = gems
這樣的事情可能嗎?
從.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數據庫模型。