我正在QWidget
上实施右键单击上下文菜单。我想知道是否有办法让这个菜单继承,复制或以某种方式 show MainWindow
中的元素' s ui->menubar
。
答案 0 :(得分:0)
Qt文档 - >菜单示例:In particular, implementing a right-click context menu on a QWidget
代码的主要部分:
void MainWindow::contextMenuEvent(QContextMenuEvent *event)
{
QMenu menu(this);
menu.addAction(cutAct);
menu.addAction(copyAct);
menu.addAction(pasteAct);
menu.exec(event->globalPos());
}
答案 1 :(得分:0)
我现在有一个答案,正确地做我想要的。可能会更好,但相当有效和浓缩:
void MainWindow::customContextMenu(const QPoint &posa) {
QMenu contextMenu;
QPoint globalPos = ui->widget->mapToGlobal(posa);
QList<QMenu*> list = ui->menubar->findChildren<QMenu*>();
for (int i=0; i<list.size(); i++) {
contextMenu.addMenu(list.at(i));
}
contextMenu.exec(globalPos);
}