ajouter dynamiquement des données de QTableView

Je suis en train d'écrire un simple TableView selon

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

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

Comment ajouter des lignes au modèle de façon dynamique? data_.insert(..) ne va pas changer la vue, actuellement je écrire une fonction pour ajouter une nouvelle ligne:

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);

Cela semble inefficace cause de la setData est appelé à deux reprises lors de l'ajout d'une ligne, car il s'agit de deux colonnes, et il peut y avoir plusieurs colonnes dans l'avenir.

Une meilleure façon d'ajouter des lignes?

Grâce.

OriginalL'auteur aj3423 | 2013-11-15