KCursor Class Reference
from PyKDE4.kdeui import *
Inherits: QCursor
Detailed Description
The KCursor class extends QCursor with the ability to create an arbitrary named cursor from the cursor theme, and provides a set of static convenience methods for auto-hiding cursors on widgets.
Methods | |
| __init__ (self, QString name, Qt::CursorShape fallback=Qt.ArrowCursor) | |
| __init__ (self, QCursor cursor) | |
| autoHideEventFilter (self, QObject a0, QEvent a1) | |
| int | hideCursorDelay (self) |
| setAutoHideCursor (self, QWidget w, bool enable, bool customEventFilter=0) | |
| setHideCursorDelay (self, int ms) | |
Method Documentation
| __init__ | ( | self, | ||
| QString | name, | |||
| Qt::CursorShape | fallback=Qt.ArrowCursor | |||
| ) |
| __init__ | ( | self, | ||
| QCursor | cursor | |||
| ) |
KCursor has to install an eventFilter over the widget you want to auto-hide. If you have an own eventFilter() on that widget and stop some events by returning true, you might break auto-hiding, because KCursor doesn't get those events.
In this case, you need to call setAutoHideCursor( widget, true, true ); to tell KCursor not to install an eventFilter. Then you call this method from the beginning of your eventFilter, for example:
edit = new KEdit( this, "some edit widget" );
edit->installEventFilter( this );
KCursor.setAutoHideCursor( edit, true, true );
[...]
bool YourClass.eventFilter( QObject *o, QEvent *e )
{
if ( o == edit ) // only that widget where you enabled auto-hide!
KCursor.autoHideEventFilter( o, e );
// now you can do your own event-processing
[...]
}
Note that you must not call KCursor.autoHideEventFilter() when you didn't enable or after disabling auto-hiding.
| int hideCursorDelay | ( | self ) |
- Returns:
- the current auto-hide delay time.
Default is 5000, i.e. 5 seconds.
| setAutoHideCursor | ( | self, | ||
| QWidget | w, | |||
| bool | enable, | |||
| bool | customEventFilter=0 | |||
| ) |
Sets auto-hiding the cursor for widget w. Enabling it will result in the cursor being hidden when
The cursor will be shown again when the focus is lost or a mouse-event happens.
Side effect: when enabling auto-hide, mouseTracking is enabled for the specified widget, because it's needed to get mouse-move-events. So don't disable mouseTracking for a widget while using auto-hide for it.
When disabling auto-hide, mouseTracking will be disabled, so if you need mouseTracking after disabling auto-hide, you have to reenable mouseTracking.
If you want to use auto-hiding for widgets that don't take focus, e.g. a QCanvasView, then you have to pass all key-events that should trigger auto-hiding to autoHideEventFilter().
| setHideCursorDelay | ( | self, | ||
| int | ms | |||
| ) |
Sets the delay time in milliseconds for auto-hiding. When no keyboard events arrive for that time-frame, the cursor will be hidden.
Default is 5000, i.e. 5 seconds.
KDE 4.4 PyKDE API Reference