3

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)

なぜですか?行全体をモデルに追加する方法は他にありますか?

4

0 に答える 0