【发布时间】:2010-10-21 11:30:38
【问题描述】:
我在QTreeWidget 中设置了QTreeWidgetItem 2 列。两个单元格都有一个由 setCheckState(...) 设置的 CheckBox。
当用户取消选中我第一列中的 CheckBox 时,我取消选中第 2 列中的第二个 CheckBox。
现在,我想阻止用户再次选中第二个 CheckBox。是否可以在第 2 列中删除此复选框或仅禁用此单元格? 到目前为止,我刚刚看到所有标志都适用于整个项目,并且一组 CheckBox 不会消失。
顺便说一句。这些项目不可编辑,我不想使用QTableWidget/-Item。
更新:
当我为项目调用 setCheckState 时,Qt 会自动插入 CheckBox:
QTreeWidgetItem *item = new QTreeWidgetItem(ui.TreeWidget);
item->setCheckState(0, Qt::Checked);
在new 之后,该项目不拥有复选框(Qt 默认情况下)。调用 setCheckState(...) 我会自动插入一个 CheckBox(在第 0 列中),其中包含我想要的 Qt::CheckState。
但在我完成之后,就无法删除 CheckBox - 看起来如此。
也许有人有一个解决方案,我以后如何摆脱这个 CheckBox?非常感谢任何帮助!
【问题讨论】:
-
你能告诉你如何在 QTreeWidgetItem 中添加两个复选框吗?如果将它们保存在变量中,则可以访问它们(及其方法)。
标签: c++ qt qtreewidgetitem