我正在写一个简单的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);
这似乎效率低下setData
,因为追加一行时调用了两次,因为有两列,将来可能会有更多列。
有更好的方法来追加行吗?
谢谢。