2012-03-08 4 views
0

Я работаю с python plugins.I имеет один QListWidget как fieldsList _2 на моей форме. Я перечисляю некоторый элемент к нему, как результат запроса. Мой код выглядит следующим образом:Python -QListWidget.TypeError: range() целочисленный аргумент end ожидается

c = self.db.con.cursor() 
self.db._exec_sql(c, "SELECT desc,survey from bio") 
      for row in c.fetchall(): 
        acoustic=unicode(row[0]) 
        if (acoustic[0:3]=="ACO"): 

          surv=unicode(row[1]) 
          self.fieldsList_2.addItem(unicode(row[1])) 

          for i in range(self.fieldsList_2.count): 
            if self.fieldsList_2.item(i).text() == surv: 
              self.fieldsList_2.takeItem(i) 

Я хотел предотвратить QListWidget fieldsList _2 из списка дублируют entries.But когда я пытаюсь запустить приведенный выше код, он дает ошибку:

for i in range(self.fieldsList_2.count): 
TypeError: range() integer end argument expected, got builtin_function_or_method. 

Я попытался диапазон (1, self.fieldsList_2.count) .. но не успех.Если 3 одинаковых элемента существуют, то я хотел сохранить один из них в Qlistwidget.

ответ

1

Чтобы исправить сообщение об ошибке дал, попробуйте изменить из

for i in range(self.fieldsList_2.count): 

в

for i in range(self.fieldsList_2.count()-1): 

графа() - 1, так как элемент, который вы только что добавили был добавлен в конец списка, если вы хотите сохранить его, вы должны игнорировать последнее.

Альтернативой является только добавить элемент, если дубликат не существует, вот некоторые псевдо-код:

duplicates = self.fieldlist_2.findItems(surv, QtCore.Qt.MatchExactly) 
if duplicates.size() == 0: 
    self.fieldsList_2.addItem(unicode(row[1])) 
//skip the loop part since it's not necessary using this alternative 
+0

@ Кристофер - yes..but оба одни и те же элементы removed..i хотели сохранить один из них ... – poonam

+0

@poonam: Добавлены части для решения этой проблемы в ответе. – Kristofer

+0

@ Kristofer-ok, но синтаксическая ошибка в Qt :: MatchExactly ... и count() - 1 не добавляет даже один элемент в список ... – poonam

Смежные вопросы