在QT中,可以使用C++结合QT的Model/View框架来实现基础数据类型的插入、查询和删除操作。能否给个代码例子
时间: 2024-04-14 19:30:24 浏览: 153
当然可以!以下是一个示例代码,展示了如何使用C++结合QT的Model/View框架来实现基础数据类型的插入、查询和删除操作:
```cpp
#include <QApplication>
#include <QTableView>
#include <QStandardItemModel>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
// 创建数据模型
QStandardItemModel model;
model.setColumnCount(2);
model.setHeaderData(0, Qt::Horizontal, "Name");
model.setHeaderData(1, Qt::Horizontal, "Age");
// 插入数据
QList<QStandardItem*> row1;
row1.append(new QStandardItem("John"));
row1.append(new QStandardItem("25"));
model.appendRow(row1);
QList<QStandardItem*> row2;
row2.append(new QStandardItem("Emily"));
row2.append(new QStandardItem("30"));
model.appendRow(row2);
// 创建视图
QTableView tableView;
tableView.setModel(&model);
tableView.show();
// 查询数据
QModelIndexList indexList = model.match(model.index(0, 0), Qt::DisplayRole, QVariant::fromValue("John"), -1, Qt::MatchExactly);
if (!indexList.isEmpty()) {
QModelIndex index = indexList.first();
qDebug() << "Found at row:" << index.row() << ", column:" << index.column();
} else {
qDebug() << "Not found.";
}
// 删除数据
model.removeRow(0);
return app.exec();
}
```
在这个例子中,我们使用了QStandardItemModel作为数据模型,通过调用setColumnCount()和setHeaderData()函数来设置模型的列数和列标题。然后,我们使用appendRow()函数向模型中插入两行数据。创建一个QTableView作为视图,并将模型设置给视图。最后,我们使用match()函数来查询名为"John"的数据,并使用removeRow()函数删除第一行数据。
这只是一个基础的示例,您可以根据具体的需求进行扩展和修改。希望这个示例对您有帮助!如果您有任何疑问,请随时提问。
阅读全文