rightclick event dans Qt pour ouvrir un menu contextuel

J'ai un segment de code qui appelle une mousePressEvent. J'ai le clic gauche de la sortie, les coordonnées du curseur, et j'ai droit de faire de même, mais je veux aussi avoir le clic droit ouvre un menu contextuel. Le code que j'ai pour l'instant est:

void plotspace::mousePressEvent(QMouseEvent*event)
{
    double trange = _timeonright - _timeonleft;
    int twidth = width();
    double tinterval = trange/twidth;

    int xclicked = event->x();

    _xvaluecoordinate = _timeonleft+tinterval*xclicked;



    double fmax = Data.plane(X,0).max();
    double fmin = Data.plane(X,0).min();
    double fmargin = (fmax-fmin)/40;
    int fheight = height();
    double finterval = ((fmax-fmin)+4*fmargin)/fheight;

    int yclicked = event->y();

    _yvaluecoordinate = (fmax+fmargin)-finterval*yclicked;

    cout<<"Time(s): "<<_xvaluecoordinate<<endl;
    cout<<"Flux: "<<_yvaluecoordinate<<endl;
    cout << "timeonleft= " << _timeonleft << "\n";

    returncoordinates();

    emit updateCoordinates();

    if (event->button()==Qt::RightButton)
    {
            contextmenu->setContextMenuPolicy(Qt::CustomContextMenu);

            connect(contextmenu, SIGNAL(customContextMenuRequested(const QPoint&)),
            this, SLOT(ShowContextMenu(const QPoint&)));

            void A::ShowContextMenu(const QPoint &pos) 
            {
                QMenu *menu = new QMenu;
                menu->addAction(tr("Remove Data Point"), this,  
                SLOT(test_slot()));

                menu->exec(w->mapToGlobal(pos));
            }

    }   

}

Je sais que mon problème est très fondamental dans la nature, et que, "contextmenu" n'est pas déclaré correctement. J'ai reconstitué ce code à partir de nombreuses sources, et ne savez pas comment déclarer quelque chose en c++. Tout conseil serait grandement apprécié.

source d'informationauteur ahle6481