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



当我写标题时,我希望像工具提示一样显示鼠标位置。要做到这一点,我认为我必须覆盖 QCursor,对吧?

但我不知道QCursor的细节以及如何制作新的光标形状。

有这样的例子吗?

假设您希望在移动光标时读取坐标(就像在许多图形或 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::event(QEvent*)中使用QWidget::setToolTip(const QString&)或捕获工具提示事件。 但是正常的QToolTip只会在短暂的延迟后出现,但您希望它们不断更新。

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

最新更新