带有CheckBox的树形控件,在点选CheckBox的时候,需要与父节点和子节点进行联动选择。网上有很多通过重写控件的形式来实现,通过自己的实践,发现有两种更简单的方式可以实现:
一、静态法
在静态创建控件的时候,在编辑每一节点的时候都要勾选上以下两项,这样就可以了
二、动态法
动态创建QTreeWidget节点的时候需要给每个节点添加上属性 Qt::ItemIsAutoTristate
QTreeWidgetItem* subItem13 = new QTreeWidgetItem(subItem12);
subItem13->setFlags(Qt::ItemIsUserCheckable | Qt::ItemIsEnabled | Qt::ItemIsSelectable | Qt::ItemIsEditable | Qt::ItemIsAutoTristate);
subItem13->setText(0, QStringLiteral("文件1"));
subItem13->setCheckState(0, Qt::Unchecked);
aaa