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

Posted

技术标签:

【中文标题】qt :显示鼠标位置,如工具提示【英文标题】:qt : show mouse position like tooltip 【发布时间】:2012-09-14 03:14:45 【问题描述】:

当我写在标题上时,我希望像工具提示一样显示鼠标位置。为此,我认为我必须重写 QCursor,对吧?

但我不知道QCursor的细节以及如何制作新的cursorShape。

有这样的例子吗?

【问题讨论】:

你真正想做什么?它是向用户显示他的鼠标在哪里,还是只是改变鼠标光标以显示等待轮? 【参考方案1】:

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

最有效的方法取决于将提供坐标的小部件,但在大多数情况下,最简单的方法是为小部件使用setMouseTracking(true),并覆盖它的mouseMoveEvent(QMouseEvent* event) 以显示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*) 中捕获工具提示事件。但是正常的QToolTips 只会在短暂的延迟后出现,但您希望它们不断更新。

我应该声明我没有尝试过,但我会这样做。希望对您有所帮助!

【讨论】:

感谢您的建议。在等待回复时,我找到了类似的方法。我使用 QLineEdit 而不是 QToolTip。使用 QLineEdit,我可以让“自定义工具提示”跟随光标。

以上是关于qt :显示鼠标位置,如工具提示的主要内容,如果未能解决你的问题,请参考以下文章

D3.js:使用元素位置而不是鼠标位置定位工具提示?

Qt QGraphicsView 和 QGraphicScene 鼠标位置

如何在 Qt 中获取鼠标在屏幕上的位置?

qt语言,以鼠标为中心点进行放大和缩小。

将 Windows 窗体工具提示锚定到鼠标

MFC如何动态设置当前鼠标位置