请使用C++语言来编写上面的代码
时间: 2024-02-11 15:04:38 浏览: 69
好的,以下是使用 C++ 语言来重写 `QSqlTableModel` 的 `flags()` 函数实现在 `QTableView` 中某些列不可编辑,某些可以编辑的示例代码:
```cpp
#include <QSqlTableModel>
class CustomTableModel : public QSqlTableModel {
public:
Qt::ItemFlags flags(const QModelIndex &index) const override {
if (index.column() == 0) {
return Qt::ItemIsEnabled | Qt::ItemIsSelectable;
} else {
return QSqlTableModel::flags(index) | Qt::ItemIsEditable;
}
}
};
```
在这个示例中,我们首先检查 `index` 的列数是否为 0,也就是第一列。如果是,则返回 `Qt::ItemIsEnabled` 和 `Qt::ItemIsSelectable`,表示该单元格只读。否则,我们调用基类的 `flags()` 函数,再加上 `Qt::ItemIsEditable` 标志,表示该单元格可编辑。
您可以根据自己的需求修改此函数来实现不同的编辑行为。
阅读全文