I'm working in Qt parsing a XML file, using the QTreeWidget for displaying the sections of the XML. I want to maintain pointers to each section "heading".
I have these pointers defined:
QTreeWidgetItem* groupExport,
groupDesign,
groupSheet,
groupTitleBlock,
groupComponents,
groupLibParts,
groupLibraries,
groupNets;
I have these functons:
//////////////////////////////////////////////////////////////////////////////
/// treeAddRoot
///---------------------------------------------------------------------------
QTreeWidgetItem* window_Main::treeAddRoot(QString name) {
QTreeWidgetItem *treeRoot = new QTreeWidgetItem(ui->treeSourceFile);
...
return treeRoot;
}
QTreeWidgetItem* window_Main::treeAddRoot(QString name, QString description) {
QTreeWidgetItem *treeRoot = new QTreeWidgetItem(ui->treeSourceFile);
...
return treeRoot;
}
//////////////////////////////////////////////////////////////////////////////
/// treeAddGroup
///---------------------------------------------------------------------------
QTreeWidgetItem* window_Main::treeAddGroup(QTreeWidgetItem *treeParent, QString name) {
QTreeWidgetItem *treeChildGroup = new QTreeWidgetItem(treeParent);
...
return treeChildGroup;
}
QTreeWidgetItem* window_Main::treeAddGroup(QTreeWidgetItem *treeParent, QString name, QString description) {
QTreeWidgetItem *treeChildGroup = new QTreeWidgetItem(treeParent);
...
return treeChildGroup;
}
//////////////////////////////////////////////////////////////////////////////
/// treeAddChild
///---------------------------------------------------------------------------
void window_Main::treeAddChild(QTreeWidgetItem *treeParent, QString name) {
QTreeWidgetItem *treeChild = new QTreeWidgetItem(treeParent);
...
treeParent->addChild(treeChild);
}
void window_Main::treeAddChild(QTreeWidgetItem *treeParent, QString name, QString description) {
QTreeWidgetItem *treeChild = new QTreeWidgetItem(treeParent);
...
}
These are defined for "temporary" use while parsing:
QString tempTag, tempValue;
For the parsing code, the compiler seems to think this is OK:
if (tempTag.contains("export")) {
...
groupExport = treeAddRoot(tempTag);
}
However, a few lines later, with this:
if (tempTag.contains("design")) {
...
groupDesign = treeAddGroup(groupExport, tempTag);
}
The compiler errors with:
error: no match for ‘operator=’ (operand types are ‘QTreeWidgetItem’ and ‘QTreeWidgetItem*’)
groupDesign = treeAddGroup(groupExport, tempTag);
^
Could someone help me understand the difference and why compilation is OK with one and failing on the other ?
Thanks in advance.