我想让QTableWidget的项目可供用户编辑。以下代码在单独的项目中编译时非常有效:
QTableWidget *tablewidget = new QTableWidget;
// Add data
tablewidget->insertRow(0);
tablewidget->insertColumn(0);
tablewidget->insertColumn(1);
QTableWidgetItem *item;
item = new QTableWidgetItem("editable");
tablewidget->setItem(0,0,item);
我可以双击单元格,它就可以接收密钥了。
但是,当我将此代码作为现有项目的一部分时(正好是这段代码,没有区别,也没有与现有代码的连接),双击单元格不会导致任何内容 - 单元格不可编辑!< / p>
这个项目非常庞大,完整的代码审查将耗费大量时间。
我的第一个假设 - 也许Qt允许全局设置QTableWidget / QTableWidgetItem的所有实例的不可编辑状态?或者在全球注册代表?
您认为根本原因是什么?
答案 0 :(得分:0)
QTableWidget
默认情况下是可编辑的,并且DoubleClick
为编辑触发器。
但您现有的项目可能已经更改了这些属性。您可以将它们更改为默认值。首先尝试为整个表设置编辑触发器:
tableWidget->setEditTriggers(QAbstractItemView::DoubleClicked);
如果它无法解决您的问题,请尝试更改每个项目的可编辑属性:
item->setFlags(item.Flags() | Qt::ItemIsEditable);