Probleme mit ContextMenu in QTreeWidget

Alles rund um die Programmierung mit Qt
Antworten
Gruwe
Beiträge: 21
Registriert: 14. April 2011 18:15

Probleme mit ContextMenu in QTreeWidget

Beitrag von Gruwe »

Hallo,

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
Hier Cabletreewidget.cpp:

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);
}
Ich habe das ganze einfach aus einer Anleitung aus dem Internet kopiert, ohne groß irgendwelche Bezeichnungen anzupassen, nur damit es erstmal läuft.
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
Antworten