Qt:QTreeView禁止选中分组功能

Qt:QTreeView禁止选中分组功能

网上一般提供了两种方法,原始的方法来源,应该是这里:QTreeView disable selection on some rows

个人在使用这些时,或多或少遇到一些问题。以下提供本人的实现方法:

继承QAbstractItemModel,并重载实现flags函数。


Qt::ItemFlags QModelComboSSHConnectionTree::flags(const QModelIndex& index) const
{
	if (!index.isValid())
		return Qt::NoItemFlags;

	if (IsGroup(index))
	{
		return __super::flags(index) & ~(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
	}

	return __super::flags(index)| Qt::ItemIsEnabled | Qt::ItemIsSelectable;
}
这里请自行实现IsGroup函数。__super::flags(index)可以不调用,因为它仅仅是返回了 Qt::ItemIsEnabled | Qt::ItemIsSelectable。

 

转载请注明来源,谢谢。

有偿解决C++编程问题,承接项目定制开发;寻一份全职或兼职Windows C++开发工作。联系邮箱:[email protected]


老刀的技术日志 » Qt:QTreeView禁止选中分组功能

发表评论