如何在不设置快捷方式的情况下在菜单栏上打印快捷方式文本?
how to print shortcut text on menu bar without setting shortcut?
像这样,我要打印快捷方式文字
但我不想使用这样的代码:
this->newAction->setShortcut(QKeySequence::New);
因为我使用 KeyAction
类.
处理快捷方式
如果我使用 setShortcut()
,我的 KeyAction 类 将被忽略。
有没有只打印快捷文本的解决方案?
或者我是否必须设置像“새파일(&N)\t\tCtrl + N”这样的文本?
我想打印对齐的文本。
感谢您的帮助。
根据 TFry 的评论回答。
像往常一样设置快捷方式(使用QAction::setShortcut
)。
为防止触发操作并在按下快捷方式时停止事件传播,您必须接受顶级 window 中的所有 ShortcutOverride
事件(即通常为 MainWindow
) :
MainWindow::MainWindow(...)
{
installEventFilter(this);
}
bool MainWindow::eventFilter(QObject* o, QEvent* e)
{
if (o == this && e->type() == QEvent::ShortcutOverride) {
e->accept();
}
return QMainWindow::eventFilter(o, e);
}
像这样,我要打印快捷方式文字
但我不想使用这样的代码:
this->newAction->setShortcut(QKeySequence::New);
因为我使用 KeyAction
类.
如果我使用 setShortcut()
,我的 KeyAction 类 将被忽略。
有没有只打印快捷文本的解决方案?
或者我是否必须设置像“새파일(&N)\t\tCtrl + N”这样的文本?
我想打印对齐的文本。
感谢您的帮助。
根据 TFry 的评论回答。
像往常一样设置快捷方式(使用QAction::setShortcut
)。
为防止触发操作并在按下快捷方式时停止事件传播,您必须接受顶级 window 中的所有 ShortcutOverride
事件(即通常为 MainWindow
) :
MainWindow::MainWindow(...)
{
installEventFilter(this);
}
bool MainWindow::eventFilter(QObject* o, QEvent* e)
{
if (o == this && e->type() == QEvent::ShortcutOverride) {
e->accept();
}
return QMainWindow::eventFilter(o, e);
}