1.删除tableview选中行
QItemSelectionModel *selections = ui->tableView->selectionModel();
QModelIndexList selected = selections->selectedIndexes();
QMap<int, int> rows;
foreach (QModelIndex index, selected)
rows.insert(index.row(), 0);
QMapIterator<int, int> r(rows);
r.toBack();
while (r.hasPrevious())
{
r.previous();
l->removeRow(r.key());
l->select();
}
2.combobox按条件筛选表中数据
用combobox下拉选项框按照选项内容筛选数据库中的数据,并显示在tableview中。
这个问题困扰了我很久,所以在此记录一下
思路和代码都很简单。首先读取combobox下拉选项的文本内容,通过sql语句查询,再把查询到的数据放入新的数据模型中,最后通过tableview显示。(记住,一定是新的数据模型)
void MainWindow::on_comboBox_activated()
{
QSqlQueryModel *model = new QSqlQueryModel(ui->tableView);
QString temp_data=ui->comboBox->currentText();
if (temp_data == "正常体温(36~ 37.3℃)")
{
model->setQuery("select *from temp where tempdata >36 AND tempdata <37.3;");
ui->tableView->setModel(model);
}
}