我派生了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