I'm developing an interface for a portable linux device, although I'm not using Qt/embedded because the device runs X11. The device has touch screen, a qwerty keyboard and gaming controls.

The interface is composed by a list of categories and a list of icons, which are applications of the selected category. The user can navigate using the shoulder buttons for switching categories and the digital pad for the icons. There is a search text input box at the top, so when the user type something with the keyboard, the icon view gets filtered by the entered text, without having to press "enter" key.

What I don't know is how to make the input box to receive key presses without giving it focus. Well, I need all the widgets to work without getting focus, the input box when typing text and the other widgets when using the directional pad, shoulder buttons, or the action buttons.

I still don't know how the gaming input will be treated by X11 on this device, perhaps they will be mapped to standard keyboard keys (i.e, the direction pad mapped as arrow keys..) or perhaps I'll have to read from the /dev device (I think it's /dev/gpio) If so, how can I add my own input device to Qt?

I'm using Qt/X11 4.4.x Open Source, and I'm pretty new to Qt. I'm using Graphics View because the interface is fully graphical and skinnable (by the use of XML skins)

EDIT: I forgot to say, the touch screen is also a type of input, it works as a mouse left button click. The widgets also need to respond to these events, although I think it's more easy to do.