QT:像提示显示鼠标位置(qt : show mouse position like tooltip

2019-06-28 09:29发布

就在我写上标题,我希望能像显示工具提示鼠标的位置。
要做到这一点,我想我要重写QCursor,对不对?
但我不知道QCursor的细节,以及如何使一个新的cursorShape。
是否有任何像这样的例子吗?

Answer 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*) 但正常QToolTip唯一出现短暂的延迟后,但你希望他们不断更新。

我要声明,我没有尝试这样做,但是这是我会做的方式。 希望帮助!



文章来源: qt : show mouse position like tooltip