如果我们长时间按下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";
}
}
但只是这个简单的事情不起作用。我的代码出了什么问题?
答案 0 :(得分:0)
contextMenuEvent
的当前声明并未覆盖QMainWindow
的相应方法,因为它具有不同的signature。
所以你需要替换:
void contextMenuEvent(QGraphicsSceneContextMenuEvent *event);
在:
void contextMenuEvent(QContextMenuEvent *event);
注意:C ++ 11允许在override
关键字的帮助下在编译时发现此问题:
void contextMenuEvent(QContextMenuEvent *event) override;