创建模型和单元格选择模型:
QStandardItemModel* model = new QStandardItemModel(2,6,this);//模型行数、模型列数、父对象
QItemSelectionModel* selection = new QItemSelectionModel(model);//创建单元格选择模型
为tableView设置数据模型:
ui.tableView->setModel(model);
ui.tableView->setSelectionModel(selection);
ui.tableView->setSelectionMode(QAbstractItemView::ExtendedSelection);
ui.tableView->setSelectionBehavior(QAbstractItemView::SelectItems);
设置行数:
model->setRowCount(rowCount - 1);
设置表头:
QString header = fileContents.at(0);
QStringList headerList = header.split(QRegExp("\\s+"),QString::SkipEmptyParts);
model->setHorizontalHeaderLabels(headerList);
设置表格数据:
QStandardItem* item;
for (int i = 1; i < rowCount; i++)
{
QString text = fileContents.at(i);
QStringList lines = text.split(QRegExp("\\s"),QString::SkipEmptyParts);
for (int j = 0; j < 5; j++)
{
item = new QStandardItem(lines.at(j));
model->setItem(i - 1,j,item);
}
}
设置项是否可选:
item = new QStandardItem(headerList.at(j));
item->setCheckable(true);
if (lines.at(j) == "0")
item->setCheckState(Qt::Unchecked);
else
item->setCheckState(Qt::Checked);
model->setItem(i - 1,j,item);