QGraphicsItemGroup qt上的上下文菜单

时间:2014-06-14 17:21:20

标签: qt contextmenu

如果我们长时间按下QGraphicsItemGroup,我会尝试在Qt中有一个上下文菜单。首先,我尝试这样的基本事情: 我的.h:

class myclass: public QMainWindow
{
    Q_OBJECT
public:
    myclass(QWidget *parent = 0);
    ~myclass();

public slots:
    void contextMenuEvent(QGraphicsSceneContextMenuEvent *event);

private:
    Ui::myclassClass ui;

我的cpp:

void myclass::contextMenuEvent(QGraphicsSceneContextMenuEvent *event)
{
    if (event->GraphicsSceneMouseDoubleClick)
    {
        qDebug() << "Test";
    }
}

但只是这个简单的事情不起作用。我的代码出了什么问题?

1 个答案:

答案 0 :(得分:0)

contextMenuEvent的当前声明并未覆盖QMainWindow的相应方法,因为它具有不同的signature

所以你需要替换:

void contextMenuEvent(QGraphicsSceneContextMenuEvent *event);

在:

void contextMenuEvent(QContextMenuEvent *event);

注意:C ++ 11允许在override关键字的帮助下在编译时发现此问题:

void contextMenuEvent(QContextMenuEvent *event) override;