正如我在标题上写的,我希望像工具提示一样显示鼠标位置。为此,我认为我必须覆盖 QCursor,对吗?
但我不知道 QCursor 的详细信息以及如何制作新的 cursorShape。
有没有这样的例子?
正如我在标题上写的,我希望像工具提示一样显示鼠标位置。为此,我认为我必须覆盖 QCursor,对吗?
但我不知道 QCursor 的详细信息以及如何制作新的 cursorShape。
有没有这样的例子?
假设您在移动光标时需要一个坐标读数(就像在许多图形或 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*)
. 但是 normalQToolTip
仅在短暂延迟后出现,但您希望它们不断更新。
我应该声明我没有尝试过,但这是我会这样做的方式。希望有帮助!