Ich habe gestern die neue QT Version erst auf mein Linux und heute auf Win32 aufgespielt.
Damit ich meine ganzen Lauffähigen Programme testen konnte.
Leider muste ich feststellen das alle TableWidgets nicht mehr Richtig befüllt werden.
Ich lesen aus einem XML Dokument meine Knoten und füge diese mit einer for Schleife ein.
Code: Alles auswählen
void SpokecalculatorMain::InsertItemsFromSQLQuery( QDomDocument *dom )
{
QString QueryType;
QString ImportLabel;
QStringList NodesList;
NodesList << "vendor" << "product" << "description" << "itemid";
if ( dom->hasChildNodes() ) {
QDomElement rootNode = dom->documentElement();
if ( rootNode.hasAttributes() && rootNode.nodeName() == "spokecalc" ) {
QueryType = rootNode.attributeNode( "querytype" ).value();
ImportLabel = rootNode.attributeNode( "tabletype" ).value();
}
if ( ! QueryType.isNull() && QueryType == "treffer" ) {
QDomNodeList ChildNodes = rootNode.elementsByTagName( "item" );
for( int rows = 0; rows < ChildNodes.size(); rows++ ) {
QDomElement nextChild = ChildNodes.at(rows).toElement();
if( ! nextChild.isNull() && nextChild.isElement() == true ) {
// qDebug() << nextChild.text();
for ( int cols = 0; cols < NodesList.size(); cols++ ) {
QString Data = nextChild.namedItem( NodesList[cols] ).firstChild().nodeValue();
net_query_table->insertRow( rows );
net_query_table->setItem( rows, cols, new QTableWidgetItem( Data ) );
}
}
}
}
}
/* schnipp......... */
}
Es wird immer nur die erste Spalten befüllt und nicht immer alle Reihen.
Alle weiteren Spalten bleiben Leer bis auf den Letzten Eintrag (letzte Reihe).
Diese wird Korrekt ausgegeben. Daher gehe ich mal davon aus das ich ein Speicher Problem habe.
Meine Frage wie kann ich das Problem Lösen?
Anmerkung die XML Knoten Elemente sind Variable benutzen aber immer die Gleiche Spalten Anzahl pro Reihe.
mfg Jürgen