QTreeWidgetItem 类里面setFlags()函数可以设置整行Item可编辑,无法设置单独某列。
想设置单独某列可编辑,可以利用QTreeWidget提供的SIGNAL itemDoubleClicked() 加上QTreeWidegetItem的setFlags()达到要求
connect(fileFilter,SIGNAL(itemDoubleClicked(QTreeWidgetItem*,int)),this,SLOT(EditFileFilter(QTreeWidgetItem*,int)));
void H2000_GUI::EditFileFilter(QTreeWidgetItem* item,int column)
{
if (column==1) //哪一列需要可编辑,这里是第二列
{
item->setFlags(item->flags()|Qt::ItemIsEditable);
}
else //当双击的不是第二列的时候将flags中的可编辑属性去掉
{
item->setFlags(item->flags()&~(Qt::ItemIsEditable));
}
}
这样当双击的不是你想要编辑的列的时候item的flags属性就没有可编辑