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
Gustavo A. Díaz
_______________________________________________
PyQt mailing list    [email protected]
http://www.riverbankcomputing.com/mailman/listinfo/pyqt

Reply via email to