QWidget поверх другого виджета

У меня есть графики (QCustomPlot), расположенные вертикально с разделителем (QSplitter).

Как я могу получить окно, как на картинке, когда я нажимаю на правую кнопку? Я умею обрабатывать сигнал правой кнопки, но не могу понять, как отобразить нужное мне окно.

введите здесь описание изображения


person Marat Gareev    schedule 21.04.2018    source источник


Ответы (1)


Добавьте QMenu в качестве члена вашего виджета. В .ч:

#include <QMenu>
#include <QAction>
.....
QMenu menu;

В конструкторе:

QAction* action=new QAction("save",this);
connect(action,SIGNAL(triggered()),this,SLOT(save()));
menu.addAction(action);
QAction* action2=new QAction("clear",this);
connect(action2,SIGNAL(triggered()),this,SLOT(clear()));
menu.addAction(action2);
setContextMenu(&menu);
person Michael O.    schedule 21.04.2018
comment
Ух ты! То что нужно. Благодарю вас! Однако я не понял, для чего нужна последняя функция setContextMenu(&menu);, да и не понимаю. Я говорю так menu.exec(event->globalPos());. - person Marat Gareev; 21.04.2018
comment
Эта функция устанавливает контекстное меню для этого виджета, чтобы его можно было вызвать, щелкнув правой кнопкой мыши. - person Michael O.; 21.04.2018