タイトルを書くときは、ツールチップのようにマウスの位置を表示したいと思います。そのためには、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*)
ます。ただし、通常QToolTip
のは少し遅れて表示されますが、継続的に更新する必要があります。
私はこれを試したことがないことを述べる必要がありますが、これは私が行う方法です。お役に立てば幸いです。