[PyQt] [PyKDE4] Default value for the second argument of KAction.setShortcut() does not seem to work

Simon Edwards simon at simonzone.com
Sat Jan 12 10:40:53 GMT 2008


Hi,

Adeodato Simó wrote:
> This one time, I'm finding that KAction.setShortcut() can't work in
> Python without passing a value for the second argument, whereas this
> works in C++. Any chance you'd know why? Thanks.

Looks like a bug in PyKDE4. The second arg doesn't have a default value 
like in the C++ version. I'll try to get this fixed in 4.0.1.

> This:
> 
> -8<-
> #! /usr/bin/env python
> 
> from PyKDE4 import kdeui
> 
> action = kdeui.KAction(None)
> action.setShortcut(kdeui.KShortcut('Ctrl+F'))

Add the second arg like this (and close your eyes):

action.setShortcut(kdeui.KShortcut('Ctrl+F'),
   kdeui.KAction.ShortcutTypes( \
     kdeui.KAction.ShortcutTypes(kdeui.KAction.ActiveShortcut) | \
     kdeui.KAction.ShortcutTypes(kdeui.KAction.DefaultShortcut)))

This fix will work in the future and has the same effect as the fixed 
version.

mmm... it would be nice if PyQt4's QFlags() accepted a uint mask in its 
constructor. If would save a lot of ugly Python code, for the price of a 
little bit of runtime type safety...

Thanks for the great bug report.

cheers,

-- 
Simon Edwards             | KDE-NL, Guidance tools, Guarddog Firewall
simon at simonzone.com       | http://www.simonzone.com/software/
Nijmegen, The Netherlands | "ZooTV? You made the right choice."


More information about the PyQt mailing list