python + 对象列表视图 + 更新列表
python + objectlistview + updatelist
我有一个对象列表视图。我从中删除了一行,然后我想在没有删除的行的情况下更新列表。我用数据库中的数据填充列表。我试过 repopulatelist,但它似乎使用了列表中已有的数据。
我想我可以用clearAll(清空列表)解决,然后addobjects再添加数据库。但似乎应该可以只更新列表。这是我的代码:
def deletemeas(self):
MAid = self.objectma.id
MAname = self.pagename
objectsRemList = self.tempmeasurements.GetCheckedObjects()
print 'objectremlist', objectsRemList
for measurement in objectsRemList:
print measurement
Measname = measurement.filename
Measid = database.Measurement.select(database.Measurement.q.filename == Measname)[0].id
deleteMeas = []
deleteMeas.append(MAid)
deleteMeas.append(Measid)
pub.sendMessage('DELETE_MEAS', Container(data=deleteMeas)) #to microanalyse controller
#here I get the latest information from the database what should be viewed in the objectlist self.tempmeasurements
MeasInListFromDB = list(database.Microanalysismeasurement.select(database.Microanalysismeasurement.q.microanalysisid == MAid))
print 'lijstmetingen:', MeasInListFromDB
#this doesn't work
self.tempmeasurements.RefreshObjects(MeasInListFromDB)
好的,这实际上比我想象的要容易...
我添加了这一行:
self.tempmeasurements.RemoveObject(measurement)
所以我首先从我的数据库中删除了数据 table 然后我只是删除了我的 objectlistview 中的行。
我有一个对象列表视图。我从中删除了一行,然后我想在没有删除的行的情况下更新列表。我用数据库中的数据填充列表。我试过 repopulatelist,但它似乎使用了列表中已有的数据。
我想我可以用clearAll(清空列表)解决,然后addobjects再添加数据库。但似乎应该可以只更新列表。这是我的代码:
def deletemeas(self):
MAid = self.objectma.id
MAname = self.pagename
objectsRemList = self.tempmeasurements.GetCheckedObjects()
print 'objectremlist', objectsRemList
for measurement in objectsRemList:
print measurement
Measname = measurement.filename
Measid = database.Measurement.select(database.Measurement.q.filename == Measname)[0].id
deleteMeas = []
deleteMeas.append(MAid)
deleteMeas.append(Measid)
pub.sendMessage('DELETE_MEAS', Container(data=deleteMeas)) #to microanalyse controller
#here I get the latest information from the database what should be viewed in the objectlist self.tempmeasurements
MeasInListFromDB = list(database.Microanalysismeasurement.select(database.Microanalysismeasurement.q.microanalysisid == MAid))
print 'lijstmetingen:', MeasInListFromDB
#this doesn't work
self.tempmeasurements.RefreshObjects(MeasInListFromDB)
好的,这实际上比我想象的要容易...
我添加了这一行:
self.tempmeasurements.RemoveObject(measurement)
所以我首先从我的数据库中删除了数据 table 然后我只是删除了我的 objectlistview 中的行。