PDA

View Full Version : Context menu long left click on QGraphicsTextItem



flavien317
15th June 2014, 11:22
Hello,
I try to have a context menu in Qt if we do a long press on a QGraphicsItemGroup. I have try basic thing like this:
my .h:


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

public slots:
void contextMenuEvent(QContextMenuEvent *event);

private:
Ui::myclassClass ui;

my cpp:


void myclass::contextMenuEvent(QContextMenuEvent *event)
{
if (event)
{
QMenu *menu = new QMenu;
menu->addAction(new QAction("Action 1", this));
menu->addAction(new QAction("Action 2", this));
menu->addAction(new QAction("Action 3", this));
menu->exec(event->globalPos());
}
}

It's work, but only with right click. And how to have this only on a QGraphicsItemGroup with a long left click ?

anda_skoa
17th June 2014, 10:27
You can detect the pressEvent and then use a timer to measure the hold. If the timer fires before you detect a release you have a long-press. If the release happens before, you stop the timer.

For a QGraphicsObject subclass you could also try QGraphicsObject::grabGesture()


Cheers,
_