是否有任何最佳方法可以在Qtablewidget中使特定单元格可编辑,而其余单元格只读

时间:2016-08-23 10:55:23

标签: qt qt4 qt4.8

寻找最佳方法,只需留下几个可编辑的单元格即可读取整个表格。

我尝试的是为每个单独的单元格分配不可编辑的标志,但需要编辑的单元格除外。

ui.budget_tab7->item(3,3)->setFlags(ui.budget_tab7->item(3,3)->flags() & Qt::ItemIsEditable | Qt::ItemIsSelectable);

这不是最好的方法。

是否可以通过这样做

来使整个表格不可编辑
ui.budget_tab7->setEditTriggers(QAbstractItemView::NoEditTriggers);

然后在几个单元格上应用某种方法使单元格可编辑?

1 个答案:

答案 0 :(得分:0)

这取决于你在这里想要实现的目标。一种选择是在表格中使用QStandardModel。通过这种方式,您可以输入QStandardItems这些非常容易配置的内容(请检查此课程的所有设置者,以了解它的实际功能)。

QTableWidget* view = new QTableWidget;
QStandardItemModel* model = new QStandardItemModel;
view->setModel(model);
...
QStandardItem* new_item = new QStanrdItem("A");
new_item->setEditable(false);

model->setItem(0,0,new_item);

但是,它实际上取决于您的表格显示内容以及您希望如何存储/访问数据。实现自己的QAbstractItemModel通常是获得所需功能的最佳方式。