1
我正在致力于在QWidget
上实施右键单击上下文菜单。我想知道如果有一种方法可以让这个菜单继承,副本或以某种方式显示的元素MainWindow
的ui->menubar
。Qt使用菜单栏填充上下文菜单
我正在致力于在QWidget
上实施右键单击上下文菜单。我想知道如果有一种方法可以让这个菜单继承,副本或以某种方式显示的元素MainWindow
的ui->menubar
。Qt使用菜单栏填充上下文菜单
我有一个答案,现在,妥善我想要做什么。可能会更好,但相当有效,浓缩:
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);
}
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());
}
我不知道任何方式,是更直接的,但你可以从主菜单采取'QAction's并将它们添加到右键菜单。 –