2009-02-26 15 views
3

.NET dünyasından Python ve PyQt4'e geliyor. Herhangi birinin Qt widget'larına veri bağlamamı sağlayan herhangi bir işlevselliğe aşina olup olmadığını merak ediyordum? Örneğin (veri için sqlalchemy'yi kullanarak):PyQt4: Veri bağlama?

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

Böyle bir şey mümkün mü?

cevap

3

Bir seçenek, bir sorgudan bir liste (veya tuple) nesnesi döndüren bir işleve sahip olur ve QListWidget öğesini güncellemek için bunu kullanır. QListWidget öğesinin QListStrings'i sakladığını unutmayın. Güncellemeniz fonksiyonu aşağıdaki gibi görünebilir:

doğrudan değiştirme, bunu yararlı QDataWidgetMapper sınıfına bakmak bulabilirsiniz olmasa da
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)