3

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

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

这样的事情可能吗?

4

2 回答 2

4

虽然不是直接替换,但您可能会发现查看 QDataWidgetMapper 类很有用:

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

如果您不害怕阅读 C++ 代码,那么这个示例也可能会有所帮助:

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

请注意,映射器在 Qt 的模型/视图框架内运行。在这个例子中,模型恰好是一个 SQL 数据库模型。

于 2009-02-26T22:40:32.483 回答
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) 
于 2009-02-26T21:03:53.247 回答