qt:显示鼠标位置,如工具提示

时间:2012-09-14 03:14:45

标签: qt cursor override

当我写标题时,我希望像工具提示一样显示鼠标位置 要做到这一点,我认为我必须覆盖QCursor,对吧? 但我不知道QCursor的细节以及如何制作新的cursorShape 有这样的例子吗?

1 个答案:

答案 0 :(得分:9)

假设您在移动光标时需要坐标读数(就像在许多图形或CAD应用程序中一样),您确实想要覆盖QCursor

最有效的方法取决于哪个小部件将提供坐标,但在大多数情况下,最简单的方法是setMouseTracking(true)小部件,并覆盖它的mouseMoveEvent(QMouseEvent* event)以显示{{1像这样:

QToolTip

通常你不会“强行”这样的工具提示;您可以在void MyWidget::mouseMoveEvent(QMouseEvent* event) { QToolTip::showText(event->globalPos(), // In most scenarios you will have to change these for // the coordinate system you are working in. QString::number( event->pos().x() ) + ", " + QString::number( event->pos().y() ), this, rect() ); QWidget::mouseMoveEvent(event); // Or whatever the base class is. } 中使用QWidget::setToolTip(const QString&)或捕获工具提示事件。但正常QWidget::event(QEvent*)仅在短暂延迟后出现,但您希望它们不断更新。

我应该声明我没有尝试过这个,但这就是我这样做的方式。希望有所帮助!