What is difference between hotkey, shortcut and accelerator key?

c++, qt, windows

Solution

In Windows, an accelerator key is application global; e.g. Alt+F4.

A shortcut key is part of the name of a menu item or button, where it can be underlined, and is available (without modifiers) when that menu item or button is directly available.

From Microsoft:

A hot key is a key combination that the user can press to perform an action quickly. For example, a user can create a hot key that activates a given window and brings it to the top of the z-order.

which seems to indicate that hot keys are system global.

To sum up:

- shortcut key = no modifiers, local in menu or (for button) in window

- accelerator key = typically with modifier, application global

- hot key = apparently system global

I don't know about specific meanings in Qt; for that see the Qt documentation.

Problem

What is the difference about them? In Qt, if I have a hotkey for QPushButton, I can make it by "Alt + ?", but if it's for qaction, I can press "?" only

Original source