2009-02-26 15 views
3

.NETの世界からPythonとPyQt4に移行しました。誰かがQtウィジェットにデータをバインドする機能をよく知っているのだろうかと疑問に思っていましたか?たとえば(データにsqlalchemyを使用):PyQt4:データバインディング?

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

このようなことは可能ですか?

答えて

3

1つのオプションは、クエリからリスト(またはタプル)オブジェクトを返す関数を持ち、それを使用してQListWidgetを更新します。 QListWidgetにはQListStringが格納されていることに注意してください。あなたの更新機能は、次のようになります。

直接交換は、あなたはそれが役に立つQDataWidgetMapperクラスを見て見つけるかもしれないが、
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)