ich möchte ein Programm erstellen mit dem ich eine Kabelliste erstellen kann.
Ich stell es mir so vor, dass ich ein QMainWindow habe (das funktioniert problemlos), damit ich das Programm gut erweitern kann, etc.
Als zentrales Widget habe ich dem MainWindow ein QTreeWidget, welches ich abgeleitet habe, zugeordnet, welches auch problemlos angezeigt wird.
In dem TreeWidget wollte ich nun als erstes ein ContextMenu machen, da ich über das ContextMenu dem TreeWidget Elemente zufügen möchte. Daher habe ich bisher ausschließlich versucht dem TreeWidget
eben dieses Contextmenu beizubringen.
Das ganze sieht bisher so aus:
Hier CableTreeWidget.h:
Code: Alles auswählen
#ifndef CABLETREEWIDGET_H
#define CABLETREEWIDGET_H
#include <QTreeWidget>
class CableTreeWidget : public QTreeWidget
{
Q_OBJECT
public:
CableTreeWidget();
~CableTreeWidget();
private:
protected slots:
void ShowContextMenu( QPoint& );
};
#endif // CABLETREEWIDGET_H
Code: Alles auswählen
#include "cableTreeWidget.h"
#include <QtCore>
#include <QMenu>
CableTreeWidget::CableTreeWidget()
{
this->setContextMenuPolicy(Qt::CustomContextMenu);
connect(this, SIGNAL(customContextMenuRequested(const QPoint&)),
this, SLOT(ShowContextMenu(QPoint&)));
}
CableTreeWidget::~CableTreeWidget()
{
}
void CableTreeWidget::ShowContextMenu(QPoint &pos)
{
QPoint globalPos = this->mapToGlobal( pos );
QMenu myMenu;
myMenu.addAction("Menu Item 1");
// ...
QAction* selectedItem = myMenu.exec(globalPos);
}
Alles wird ohne Probleme kompiliert.
Mein Problem: Bei Rechtsklick auf das TreeWidget erscheint kein Popup bzw. ContextMenu!
Kann mir bitte jemand helfen und erklären, was ich mit dem ContextMenu falsch mache?
Vielen Dank!
MfG