Single key input property in UI Panel
To capture a single key, the event param of prop in UILayout needs to be set to True and the corresponding property needs to be an EnumProperty with ALL the key codes mapped. 

When the user presses a key on the control, the EnumProperty item that is related to the code of the key pressed, gets selected.

Please post your answer if you have any better alternative.