7

TableViewに従って簡単に書いています

http://harmattan-dev.nokia.com/docs/library/html/qt4/itemviews-addressbook.html

class MyModel : public QAbstractTableModel {
    Q_OBJECT
public:
    QList<QPair<string, int> > data_;
....

モデルに行を動的に追加する方法は? data_.insert(..)ビューを変更しません。現在、新しい行を追加する関数を作成しています。

void my_append_data(const string& first, int second) {
    int row = rowCount(QModelIndex());
    insertRow(row); // insert a empty row
    // fill the row
    setData(createIndex(row, 0), QVariant::fromValue<string>(first), Qt::EditRole);
    setData(createIndex(row, 1), QVariant::fromValue<int>(second), Qt::EditRole);
}
// usage
model.my_append_data("11111", 111);
model.my_append_data("22222", 222);

これは、行を追加するときに が 2 回呼び出される非効率的な原因のようです。これsetDataは、列が 2 つあり、将来さらに列が増える可能性があるためです。

行を追加するより良い方法はありますか?

ありがとう。

4

2 に答える 2