メニューにショートカットキーを対応させる方法

QTでメニューバーの各メニューショートカットキーを対応させたいときはメニューのタイトルに"&"をつけるだけで自動的にショートカットさせることができます。

例えば次のような4つのメニューのあるメニューバーがあります。

メニューを4つ持つメニューバー

この4つのメニューにALTキーを押したときにそれぞれショートカットキーを対応させたい場合は次のようにメニューを作ります。

menuBar()->addMenu(new QMenu(tr("File(&F)"), this));
menuBar()->addMenu(new QMenu(tr("Editing(&E)"), this));
menuBar()->addMenu(new QMenu(tr("Display(&D)"), this));
menuBar()->addMenu(new QMenu(tr("Help(&H)"), this));

各メニューのタイトルに一部に"&"の文字をつけるだけで [ALT + &の後にある文字] をショートカットキーとして対応させることができます。

もし"&"自体を表示したいときは"&&"というふうにエスケープすればOKです。

このようにして作ったメニューバーはALTキーが押されたときにショートカットに対応している文字に下線が引かれます。

ALTに反応したメニューバー

そしてALTを押している最中にメニューに割り当てたキーを押すとメニューがプルダウンして表示されます。

ショートカットキーから開かれたメニュー

これが分からず数時間悩んでました...orz

以上、メニューへのショートカットキーの割り当てでした。では、また!

関連項目
プライバシーポリシー