Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
QTooltip显示位置_Qt_Tooltip_Mouseevent - Fatal编程技术网

QTooltip显示位置

QTooltip显示位置,qt,tooltip,mouseevent,Qt,Tooltip,Mouseevent,我在我的小部件的mouseMoveEvent上添加了QTooltip。此工具提示显示在鼠标光标上方 void myWidget::mouseMoveEvent(QGraphicsSceneMouseEvent *event) { QToolTip::showText(event->scenePos().toPoint(), QString::number(event->scenePos().x()) + ", "

我在我的小部件的
mouseMoveEvent
上添加了
QTooltip
。此工具提示显示在鼠标光标上方

void myWidget::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
{

  QToolTip::showText(event->scenePos().toPoint(),
                       QString::number(event->scenePos().x()) + ", "
                       + QString::number(event->scenePos().y()));

  QGraphicsScene::mouseMoveEvent(event);
}

如何使用光标自定义工具提示的位置?我想在光标下方显示此工具提示。

您应该使用
screenPos
而不是
scenePos
。例如:

void myWidget::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
{

  QToolTip::showText(event->screenPos().toPoint(),
                       QString::number(event->scenePos().x()) + ", "
                       + QString::number(event->scenePos().y()));

  QGraphicsScene::mouseMoveEvent(event);
}

另一种方法是使用神奇的数字,如-2或-3,但我认为
screenPos
globalPos
(在简单的
mouseEvent
中)更好。

如果您尝试showText中的event->globalPos()怎么办?它能正常工作吗?@Chernobyl
globalPos()
在这里甚至不是一个选项,我可以使用
event->pos()
event->scenePos()
event->screenPos()
。我猜
qgraphicscenemouseevent
只允许这三个选项。是的,请尝试screenPos,它应该与mouseEvent中的globalPos相同。工作正常吗?是的,工作正常。谢谢但是有没有其他方法可以覆盖它设置的默认位置?