ich sitzt jetzt schon seit Stunden über ein und dem selben Problem.
Ich habe eine Klasse von QTreeWidgetItem abgeleitet.
Diese Klasse ist fast identisch, bis auf dass sie zusätzlich eine QDomElement abspeichert, das beim Konstrukor angegeben wird.
dlatreewidgetitem.h
Code: Alles auswählen
#ifndef DLATREEWIDGETITEM_H
#define DLATREEWIDGETITEM_H
#include <QTreeWidgetItem>
#include <QtXml>
class DlaTreeWidgetItem : public QTreeWidgetItem
{
public:
DlaTreeWidgetItem();
DlaTreeWidgetItem(QDomElement myelem, QTreeWidgetItem *parentItem);
QDomElement e;
};
#endif // DLATREEWIDGETITEM_Hdlatreewidgetitem.cpp
Code: Alles auswählen
#include "dlatreewidgetitem.h"
DlaTreeWidgetItem::DlaTreeWidgetItem()
{
}
DlaTreeWidgetItem::DlaTreeWidgetItem(QDomElement myelem , QTreeWidgetItem *parentItem):QTreeWidgetItem(parentItem){
this->e = myelem;
}
Jetzt mochte ich in meinem QTreeWidget , immer wenn ich auf ein DlaTreeWidgetItem klicke, ein gewisses Attribut aus dem darin gespeicherten QDomElement zurückbekommen. Das erste Problem ist, dass ich vom QTreeWidget nur den
SLOT itemClicked(QTreeWidgetItem*,int) zu verfügung hab.
Was ich eigentlich bräuchte wäre ja itemClicked(DlaTreeWidgetItem*,int)
Einfach mal ignorieren... dacht ich mir. Geht ja trotzden, weil DlaTreeWidgetItem geerbt hat. Also hab ich mal schön verbunden:
Code: Alles auswählen
connect( ui->treeWidget , SIGNAL(itemClicked(QTreeWidgetItem*,int)),
this , SLOT(setMyText(QTreeWidgetItem*, int)));Code: Alles auswählen
void MainWindow::setMyText(QTreeWidgetItem *mywid, int i){
ui->label->setText(mywid->e.attribute("title"));
}Gibt es eine Möglichkeit das übergebene QTreeWidgetItem in der Methode setMyText() zurückwandeln? Oder kennt ihr irgend eine andere Lösung???error: 'class QTreeWidgetItem' has no member named 'e'
vielen Dank schon mal dass ihr es bis hierher geschafft habt!
Auf Antworten würde ich mich riesig freuen
Beste Grüße aus München