Hi,
ich habe mehrere QTableWidgets, deren Items man per Drag and Drop verschieben kann, auch in andere QTableWidgets rein. Mein Problem ist, dass ich gerne abfangen würde, wenn ein Item in ein anderes QTableWidget verschoben wird. Konnte leider kein geeignetes Signal/Event finden. Achja, benutzen tue ich Qt 4.2.2.
Danke für die Hilfe
Drag and Drop Event bei QTableWidgetItem
Code: Alles auswählen
virtual bool QTableWidget::dropMimeData ( int row, int column, const QMimeData * data, Qt::DropAction action )-
BartSimpson
- Beiträge: 1379
- Registriert: 6. November 2004 12:03
- Kontaktdaten:
QTableWidgetItem ist ja nicht von QObject abgeleitet. Ich dachte dann, dass ich das so lösen kann:BartSimpson hat geschrieben:Wenn du den Designer verwendest, dann besser per Eventfilter.
qobject.html#installEventFilter
Denn wenn du die virtuelle Funktion überschreiben willst, kannste den Designer nicht nutzen.
Code: Alles auswählen
class Item : public QObject , public QTableWidgetItem
{
Q_OBJECT
...
}
Code: Alles auswählen
class ItemChanged : public QObject
{
Q_OBJECT
public:
ItemChanged(){ };
protected:
bool eventFilter(QObject *obj, QEvent *event);
};Code: Alles auswählen
bool ItemChanged::eventFilter(QObject *obj, QEvent *event)
{qDebug("irgendeinevent");
if (event->type() == QEvent::DragLeave) {
qDebug("dragevent");
return true;
} else {
// standard event processing
return QObject::eventFilter(obj, event);
}
}
Habe ich dann benutzt:
Code: Alles auswählen
Item *item1 = new Item();
ItemChanged *itemChanged = new ItemChanged();
item1->installEventFilter(itemChanged);
-
BartSimpson
- Beiträge: 1379
- Registriert: 6. November 2004 12:03
- Kontaktdaten:
Entschuldige, aber damit komme ich leider nicht wirklich weiter? Wie überwachen und warum funktioniert das oben versuchte nicht?BartSimpson hat geschrieben:Du must die Tabelle selber überwachen.
edit: Vielleicht hätte ich mal ein wenig suchen sollen: http://qtforum.de/forum/viewtopic.php?t=3399 klingt ja recht ähnlich und jetzt glaube ich auch deinen Hinweis zu verstehen...