我已经基于QGraphicsView创建了我自己的小部件。我这样做是为了重新实现一些鼠标事件这样:光标不会改变我的QGraphicsView
void Workspace::mouseMoveEvent(QMouseEvent *event)
{
qDebug() << (QString("Mouse move (%1,%2)").arg(event->x()).arg(event->y()));
QGraphicsView::mouseMoveEvent(event);
}
以及安装一个事件过滤器
bool Workspace::eventFilter(QObject* obj, QEvent* e)
{
if(e->type() == QEvent::Enter)
qDebug() << "Entered Workspace";
}
我不喜欢默认的“手”的鼠标指针,虽然和我决定改变它使用
this->setCursor(Qt::CrossCursor);
在我的构造函数。
虽然鼠标指针仅在小部件的第一个像素处变成十字,但会发生什么情况。当我进一步移动时,它会回到用于表示拖动功能的默认“手形”光标。
为什么会发生这种情况,如何将光标更改为我喜欢的任何内容?
“Workspace”的大小是多少? – 2015-04-02 13:23:10
这取决于窗口大小,从260x260开始。我确实发现了'QApplication :: setOverrideCursor(Qt :: CrossCursor)';'但我不知道它是否是最好的解决方案,但它确实按照它应该做的。 – dearn44 2015-04-02 13:30:07