我派生了QTreeWidget类并创建了我自己的QtPropertyTree。为了填充小部件(复选框,按钮等),我使用下面的代码树:Qt QTreeWidget替代IndexFromItem?
// in QtPropertyTree.cpp
QTreeWidgetItem topItem1 = new QTreeWidgetItem(this);
QTreeWidgetItem subItem = new QTreeWidgetItem(this);
int column1 = 0
int Column2 = 1;
QPushButton myButton = new QPushButton();
this->setIndexWidget(this->indexFromItem(this->subItem,column1), myButton);
QCheckBox myBox = new QCheckBox();
this->setIndexWidget(this->indexFromItem(this->subItem,column2), myBox);
这工作得很好,但问题是,我要避免使用,因为“indexFromItem”功能它受到保护,并且还有其他类正在填充树并需要访问该功能。你知道使用该功能的其他选择吗?
感谢。它似乎是这样工作的。 – Cocomico 2014-11-14 13:50:51
不幸的是它没有工作。 model() - > index(r,c)只会从顶层项目返回索引,但我需要模型中子项目的索引。 – Cocomico 2014-11-14 14:34:12
@Cocomico,是什么阻止你使用'index()'函数的子项目呢?只需使用父级的模型索引作为函数中的第三个参数,如更新后的答案中所示。 – vahancho 2014-11-14 14:46:05