db
19th October 2007, 12:16
I have created a QTreeWidget with 2 levels with each branch and node a QTreeWidgetItem. The tree works fine, however I am having a problem understanding how to retrieve the QMap data from a node after I have set it with setData(). How is it done? I have tried several different approaches that have not been successful.
Given the code snippet below, how would I get the QMap data I set in the node??
….
QMap<QString,QString> nodeDataMap;
…..
for(Idx = 1; Idx < numTop+1; Idx++)
{
… retrieve QString data (settingValue) for node name
// create tree node under the WST and add retrieved data
QTreeWidgetItem *topItem;
topItem = new QTreeWidgetItem(mainItem);
topItem->setText(0,settingValue);
// and finally create the list of functions to process for eaach EW
for(nodeIdx = 1; nodeIdx < numNode+1; nodeIdx++)
{
… retrieve QString data (settingValue) for node name
// create tree node under the WST and add retrieved data
QTreeWidgetItem *nodeItem;
nodeItem = new QTreeWidgetItem(topItem);
nodeItem->setText(0,settingValue);
nodeItem->setFlags(nodeItem->flags() | Qt::ItemIsUserCheckable );
nodeItem->setCheckState(0,Qt::Unchecked);
… retrieve QString data for node name
// assign library name to data structure
nodeDataMap.clear();
nodeDataMap.insert("library",settingValue1);
// assign method name to data structure
nodeDataMap.insert("method",settingValue2);
// assign argument type to data structure
nodeDataMap.insert("arg1",settingValue3);
nodeDataMap.insert("arg2",settingValue4);
nodeItem->setData(0, Qt::UserRole, &nodeDataMap);
}
}
Given the code snippet below, how would I get the QMap data I set in the node??
….
QMap<QString,QString> nodeDataMap;
…..
for(Idx = 1; Idx < numTop+1; Idx++)
{
… retrieve QString data (settingValue) for node name
// create tree node under the WST and add retrieved data
QTreeWidgetItem *topItem;
topItem = new QTreeWidgetItem(mainItem);
topItem->setText(0,settingValue);
// and finally create the list of functions to process for eaach EW
for(nodeIdx = 1; nodeIdx < numNode+1; nodeIdx++)
{
… retrieve QString data (settingValue) for node name
// create tree node under the WST and add retrieved data
QTreeWidgetItem *nodeItem;
nodeItem = new QTreeWidgetItem(topItem);
nodeItem->setText(0,settingValue);
nodeItem->setFlags(nodeItem->flags() | Qt::ItemIsUserCheckable );
nodeItem->setCheckState(0,Qt::Unchecked);
… retrieve QString data for node name
// assign library name to data structure
nodeDataMap.clear();
nodeDataMap.insert("library",settingValue1);
// assign method name to data structure
nodeDataMap.insert("method",settingValue2);
// assign argument type to data structure
nodeDataMap.insert("arg1",settingValue3);
nodeDataMap.insert("arg2",settingValue4);
nodeItem->setData(0, Qt::UserRole, &nodeDataMap);
}
}