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 つあり、将来さらに列が増える可能性があるためです。
行を追加するより良い方法はありますか?
ありがとう。