将行添加到QStandardItemModel

时间:2015-07-28 12:15:39

标签: qt pyqt pyqt4 qstandarditemmodel qstandarditem

我有 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 个答案:

没有答案