Добавление строки в QStandardItemModel

У меня есть QStandardItemModel и данные представлены в виде списков

model = QtGui.QStandardItemModel(0, 2)
myrow = [1, "B"]

Мое первое решение, как добавить строку, было с помощью функции setData()

model.insertRow(0)
for i,item in enumerate(myrow):
    model.setData(model.index(0, i), item)

Но это очень медленно, и у меня проблемы с производительностью уже 500 строк, это занимает 1 секунду.

Чем я пытался добавить всю строку сразу.

model.insertRow(0, [QtGui.QStandardItem(item) for item in myrow ])

Это быстрее, но не работает должным образом.

print "setData() 2.row - ",model.data(model.index(1,0)).toInt()
print "insertRow() 1.row - ",model.data(model.index(0,0)).toInt()

И я получаю разные выводы.

 setData() 2.row - (1, True)
 insertRow() 1.row - (0, False)

Любая идея почему? Есть ли другой способ, как добавить целый ряд в модель?

0 ответов

Другие вопросы по тегам