0
我使用takeTopLevelItem
之後,setItemWidget
不成功。未顯示QCheckBox
。Qt:Re setItemWidget在使用後無用takeTopLevelItem
但是,如果我更新了m_pDrawBox的一點,那很好。
有什麼我失蹤?
我想實現類似變更控制屬性的東西。 QTreeWidget(m_pTreeProperty)
將通過不同的控制進行更改。所以我需要將舊屬性重置爲新屬性QTreeWidget
。
這是我的代碼:
qtForm::qtForm(QWidget *parent, Qt::WFlags flags): QMainWindow(parent, flags)
{
ui.setupUi(this);
ui.m_pTreeProperty->setColumnCount(2);
QStringList lstStr;
lstStr.clear();
lstStr.append("Property");
lstStr.append("Value");
ui.m_pTreeProperty->setHeaderLabels(lstStr);
QTreeWidgetItem* m_pDrawBoxItem = new QTreeWidgetItem;
QCheckBox* m_pDrawBox = new QCheckBox;
m_pDrawBoxItem->setText(0,"drawbox");
ui.m_pTreeProperty->addTopLevelItem(m_pDrawBoxItem);
ui.m_pTreeProperty->setItemWidget(m_pDrawBoxItem,1,m_pDrawBox);
ui.m_pTreeProperty->takeTopLevelItem(0);
ui.m_pTreeProperty->addTopLevelItem(m_pDrawBoxItem);
--m_pDrawBox = new QCheckBox;
--m_pDrawBoxItem->setText(0,"drawbox");
ui.m_pTreeProperty->setItemWidget(m_pDrawBoxItem,1,m_pDrawBox);
}
謝謝你的回答。但我認爲這是不對的。當我首先調用addTopLevelItem時,我發送一個成員指向它。 takeTopLevelItem將返回與成員點相同的地址。無論你的或我的使用,它是相同的地址,也不會成功。 – Kaleidos 2012-02-15 08:43:16