Qt中右键菜单的快捷键使用失效:
按照网上大多数文章的内容,在初始Qt项目中添加了右键菜单(没有任何事件过滤),及相关快捷键,右键菜单可显示,也能看见快捷键。但是使用键盘的快捷键无法触发QAction绑定的槽函数,请问这是为什么呀?
代码如下:
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QDebug>
#include <QAction>
#include <QMenu>
#include <QContextMenuEvent>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
m_menu = new QMenu(this);
QAction *act = nullptr;
for (int i = 0; i < 10; i++) {
act = m_menu->addAction(QString::number(i*100));
act->setShortcut(QKeySequence(tr("ctrl+")+QString('a'+i)));
connect(act, &QAction::triggered, this, &MainWindow::Func);
}
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::name(QObject *ptr)
{
const QObjectList &ls = ptr->children();
QList<QObject *>::const_iterator it;
for(it = ls.cbegin();it != ls.cend();it++)
{
if((*it) == NULL)
{
return;
}
qDebug() << (*it)->objectName();
name((QObject*) (*it));
}
}
void MainWindow::contextMenuEvent(QContextMenuEvent *event)
{
m_menu->exec(event->globalPos());
}
void MainWindow::Func()
{
qDebug()<<"12312321";
}
Qt应用界面显示:
Qt版本:(包括Qt Creator 11.0.3 Based on Qt 6.4.3也不行)