2014-05-22 5 views
3
QTableView *tableView = new QTableView(); 
QStandardItemModel *model = new QStandardItemModel(15,4, this); 
tableView->setModel(model); 

model->setHorizontalHeaderItem(0, new QStandardItem("#")); 
model->setHorizontalHeaderItem(1, new QStandardItem("col1")); 
model->setHorizontalHeaderItem(2, new QStandardItem("col2")); 

// update tableView 

model->removeRows(0,model->rowCount()); 

QList<QStandardItem*> row1; 
row1 << new QStandardItem("element 01") << new QStandardItem("element 02") << new QStandardItem("element 03"); 
model->appendRow(row1); 

QList<QStandardItem*> row2; 
row2 << new QStandardItem("element 04") << new QStandardItem("element 05") << new QStandardItem("element 06"); 
model->appendRow(row2); 

tableView은 자주 업데이트되며 (모든 콘텐츠가 삭제되고 대체됩니다).QTableView 업데이트

QTableView을 업데이트하는 가장 빠른 방법은 무엇입니까 (데이터의 일부 구조 사용)하고이 구조를 직접 처리하는 QStandardItemModel 메서드는 무엇입니까? 같은

뭔가 :

model->setNewData(theNewData); 

답변

1

행을 제거하고 새로운 것을 추가 할 필요가 없습니다.

model->item(0, 0)->setData("element 01",Qt::DisplayRole); 
model->item(0, 1)->setData("element 02",Qt::DisplayRole); 
model->item(0, 2)->setData("element 03",Qt::DisplayRole); 

model->item(1, 0)->setData("element 04",Qt::DisplayRole); 
model->item(1, 1)->setData("element 05",Qt::DisplayRole); 
model->item(1, 2)->setData("element 06",Qt::DisplayRole); 
+0

다음과 같이하면 오류가 발생합니다. C2039 : 'item': 'QSqlTableModel'의 멤버가 아닙니다. 무엇이 잘못 될 수 있습니까? –