Here's the code I used in case it helps anyone...
{
QRect vpr
= viewport
()->geometry
();
if ( vpr.contains(pos)
|| ( pos.x() < 2 && pos.y() < vpr.bottom()) // view's left frame edge
|| ( pos.y() < 2 && pos.x() < vpr.right() )) // view's top frame edge
{
if ( pos.x() == vpr.right()
|| pos.y() == vpr.bottom() )
{
// I'm leaving the viewport and heading for a scrollbar
setCursor( gloveCursor );
}
else
{
setCursor( forbiddenCursor );
}
}
else
{
// I'm in the view but not the viewport; i.e. scrollbar area
setCursor( gloveCursor );
}
}
void MyCanvasView::mouseMoveEvent( QMouseEvent* e )
{
QPoint pos = e->pos();
QRect vpr = viewport()->geometry();
if ( vpr.contains(pos)
|| ( pos.x() < 2 && pos.y() < vpr.bottom()) // view's left frame edge
|| ( pos.y() < 2 && pos.x() < vpr.right() )) // view's top frame edge
{
if ( pos.x() == vpr.right()
|| pos.y() == vpr.bottom() )
{
// I'm leaving the viewport and heading for a scrollbar
setCursor( gloveCursor );
}
else
{
setCursor( forbiddenCursor );
}
}
else
{
// I'm in the view but not the viewport; i.e. scrollbar area
setCursor( gloveCursor );
}
}
To copy to clipboard, switch view to plain text mode
Bookmarks