我的QGraphics视图的光标不会更改
Cursor won't change for my 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);
在我的构造函数中。
然而,发生的情况是,鼠标指针只在小部件的第一个像素处变为十字。当我进一步移动时,它会返回到默认的"手"光标,用于表示拖动功能。
为什么会发生这种情况?我如何将光标更改为我喜欢的位置?
似乎使用
QApplication::setOverrideCursor(Qt::CrossCursor);
当输入小部件时,以及
QApplication::restoreOverrideCursor();
当退出时,就完成了任务。
我不知道为什么setCursor不起作用。
编辑
实际上,使用上面的不是一个好主意,因为只使用更简单
QApplication::changeOverrideCursor(*mCurrentCursor);
通过这种方式,您将不必担心其他任何事情,Qt将负责队列中/队列中的堆栈。
相关文章:
- 如何在Qt C++中更改光标
- Win32 API 控制台光标在 WriteConsole 后不移动
- 在 macOS 中使用 C/C++ 设置鼠标光标图像
- 如何更改输出的位置或光标在输出处,以便在"Code Blocks"中C++
- 使用 C++将文本光标移动到屏幕中不可见的行
- 在 C# 中更改鼠标光标图标
- ASCII 旋转光标 (TUI) 动画出现问题
- 将鼠标悬停在图片框上时,如何显示带有 x-y 坐标的十字准线光标?
- 将光标单独移动到当前位置
- 如何获得鼠标光标连接时按下左键单击和在C++中释放左键单击时?
- 由于选项卡顺序的原因,鼠标光标总是得到错误的hwnd-MFC应用程序
- 如何在C++中模拟鼠标光标的移动
- 如何确定鼠标光标所在的控制台字符
- 如何在C++中使用光标定位
- 如何在QML中设置鼠标光标位置
- 如果传递到QGraphicsRectItem Qt c++,请更改光标
- 从 QML 更好地控制文本光标
- Windows 函数"GetCursorInfo"返回成功,但光标的句柄为 NULL
- 避免在光标移到子窗口上时WM_MOUSELEAVE
- 我的QGraphics视图的光标不会更改