Я пишу простой TableView согласнодинамически добавлять данные в QTableView
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);
Это кажется неэффективным привести к тому УстановитьДанные вызывается дважды, когда добавить строку, потому что вы два столбцов, и в будущем может быть больше столбцов.
Любой лучший способ добавить строки?
Спасибо.
Это приятно, спасибо Крису. – aj3423
Я не понимаю, почему этот код лучше, чем код, о котором идет речь, я бы сказал, что это еще хуже. ИМО мой ответ намного лучше. –