就在我写上标题,我希望能像显示工具提示鼠标的位置。
要做到这一点,我想我要重写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