部分代码有改动,为的是在QML中实现动态更改鼠标图案的效果!
目的:在qml中,当鼠标移动到一个位置(区域)时候(或其它的触发事件),改变鼠标的图案;
前提:自己定义了一个declarativeview,并将这个view注册到qml中(参考qml中注册和使用C++对象),然后再这个自定义的view中写了设置cursor的方法。
ps:这里的方法是自定义了view,并在里面写了相关方法,也可以自己定义一个其它的处理类,然后注册到qml中(应该,没有亲测)是一样的!
实现:
1、自定义一个view
#includeclass MyDeclarativeView : public QDeclarativeView{Q_OBJECTpublic:explicit MyDeclarativeView(QWidget *parent = 0);
...
}
2、写相应的cursor处理方法:
voidMyDeclarativeView::msetcursor(QGraphicsObject*obj,constQString&shape){if(NULL == obj)return;if("" == shape){obj->unsetCursor();return;}Qt::CursorShape cursor;if (shape == "ArrowCursor")cursor = Qt::ArrowCursor;else if (shape == "SizeAllCursor")cursor = Qt::SizeAllCursor;el