我想在我的qtreewigetitem
中添加一个复选框,我尝试将此代码添加到setflag
,然后我添加项目是可选择的,也许这样可以解决我的问题,但没有任何反应,你愿意吗?请帮助我如何将check box
添加到我的项目中?
提前谢谢你
m_eventList->addTopLevelItem(new QTreeWidgetItem);
QTreeWidgetItem *item = m_eventList->topLevelItem(m_eventList->topLevelItemCount()-1)
item->setFlags(item->flags() | Qt::ItemIsUserCheckable |Qt::ItemIsSelectable);
答案 0 :(得分:8)
在QTreeWidgetItem中默认设置了ItemIsUserCheckable标志,所以这不是问题。
您只需要做
item->setCheckState(Qt::Unchecked);
你应该看到一个复选框。
答案 1 :(得分:6)
尝试重新组织代码:
QTreeWidgetItem* item = new QTreeWidgetItem();
item->setFlags(item->flags() | Qt::ItemIsUserCheckable | Qt::ItemIsSelectable);
item->setCheckState(Qt::Checked);
m_eventList->addTopLevelItem(item);
另一种方法是编写自己的模型并覆盖flags()方法。在此方法中,您将返回
Qt::ItemFlags flags = Qt::ItemIsEnabled | Qt::ItemIsSelectable;
if (index.column() == 0)
{
flags |= Qt::ItemIsUserCheckable;
}
return flags;
答案 2 :(得分:0)
Qt::ItemIsUserCheckable
和Qt::ItemIsSelectable
是QTreeWidget的默认设置。
item->setCheckState(column, Qt::Unchecked)
可以。