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

Hyu*_*Kim 4 qt overriding cursor

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

cma*_*t85 9

假设你想为你移动光标的坐标读数(如在许多图形或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.
}
Run Code Online (Sandbox Code Playgroud)

通常你不会"强迫"像这样的工具提示; 您将使用QWidget::setToolTip(const QString&)或捕获工具提示事件QWidget::event(QEvent*).但正常QToolTips仅在短暂延迟后出现,但您希望它们不断更新.

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