[PyQt] About keyPressEvent
"Gustavo A. Díaz"
gustavo.diaz at gmail.com
Thu Aug 23 14:01:03 BST 2007
Andreas Pakulat escribió:
> On 23.08.07 00:54:59, "Gustavo A. Díaz" wrote:
>
>> I did this time:
>>
>> def keyPressEvent(self, event):
>> if event.key() == QtCore.Qt.Key_Escape:
>> self.hide()
>>
>> if event.key() == QtCore.Qt.Key_Alt + QtCore.Qt.Key_Escape:
>> self.hide()
>>
>> Esc key only, hides the app.
>> Alt + Esc does not, it just close the app.
>>
>> What is wrong?
>>
>
> You didn't understand how a keypress translates into a key press event.
> A keypress (when you push down Alt) is directly creating a key press
> event, which is going to be delivered. On the next key press (the Esc
> key) you'll get another key press event. So the 2nd if is never true,
> also because event.key() always returns 1 keycode, not the sum of 2.
>
> What you probably want is
>
> if event.key() == QtCore.Qt.Key_Escape and (event.modifiers() &
> QtCore.Qt.AltModifier):
> ...
>
> Andreas
>
>
Yeah i missed that... sorry.. i am just still learning about PyQT and QT....
Anyway that do not work cause for sure, now that i am thinking, that key
combination to close an app is reserved by my window manager, which is
KDE... so maybe i will have to implement something related to kde (or PyKDE)
like Sundace make me remember:
did you make sure that the Alt+Esc shortcut is not being
preempted by something else, like your window manager for instance?
Don't know if is possible directly from QT.
Thanks.....
Cheers.
--
/Gustavo A. Díaz/
*GDNet Projects*
www.gdnet.com.ar <http://www.gdnet.com.ar>
Gustavo A. Díaz
-------------- next part --------------
Skipped content of type multipart/related
More information about the PyQt
mailing list