I have a QTreeWidgetItem
with two columns of data, is there any way to make only the second column editable? When I do the following:
QTreeWidgetItem* item = new QTreeWidgetItem();
item->setFlags(item->flags() | Qt::ItemIsEditable);
all columns become editable.
You can make only certain columns in a QTreeWidget editable using a workaround:
1) Set the editTriggers property of the QTreeWidget to NoEditTriggers
2) On inserting items, set the Qt:ItemIsEditable flag of the QTreeWidgetItem object
3) Connect the following slot to the "itemDoubleClicked" signal of the QTreeWidget object:
void MainWindow::onTreeWidgetItemDoubleClicked(QTreeWidgetItem * item, int column)
{
if (isEditable(column)) {
ui.treeWidget->editItem(item, column);
}
}
where "isEditable" is a function you wrote that returns true for editable columns and false for non-editable columns.