正常要隐藏某个qtreewidgetitem的勾选框的话,只要一行代码就行,如下:
pTreeItem->setData(0, Qt::CheckStateRole, QVariant());
但在我的代码里用这行却没效果,后来发现,我的代码里面有下面这行
pTreeItem->setCheckState(0,Qt::Unchecked);
一旦我们调用了qtreewidgetitem的setCheckState()方法,系统就默认会显示checkbox。
所以要不显示item的checkbox的话,需要做到这几点:
1.pTreeItem->setFlags()里面不要有Qt::ItemIsSelectable
2.不要调用pTreeItem->setCheckState();方法
3.调用pTreeItem->setData(0, Qt::CheckStateRole, QVariant());方法
当使用QTreeWidgetItem时,若想隐藏其勾选框,需避免设置Qt::ItemIsSelectable标志,并且不调用setCheckState()方法,而是使用setData(0,Qt::CheckStateRole,QVariant())来取消关联的检查状态。
566

被折叠的 条评论
为什么被折叠?



