QWidget 在另一个小部件上
Posted
技术标签:
【中文标题】QWidget 在另一个小部件上【英文标题】:QWidget over another widget 【发布时间】:2018-04-21 14:18:35 【问题描述】:我有使用分隔符 (QSplitter) 垂直排列的图表 (QCustomPlot)。
点击右键如何获得如图所示的窗口?我知道如何处理右键信号,但我不明白如何显示我需要的窗口。
【问题讨论】:
【参考方案1】:将 QMenu 添加为小部件的成员。在.h:
#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);
【讨论】:
哇!正是需要的。谢谢!但是,我不明白最后一个函数setContextMenu(&menu);
是干什么用的,我也不明白。我这样说menu.exec(event->globalPos());
。
这个函数为这个小部件设置了一个上下文菜单,所以可以通过点击鼠标右键来调用它。以上是关于QWidget 在另一个小部件上的主要内容,如果未能解决你的问题,请参考以下文章
QWidget.paintevent() 与 QLabel.setPixmap()