Ich bin auf der Suche nach Möglichkeiten, um eine einfache benutzerdefinierte Tooltip für QGraphicsItem
zu implementieren.Benutzerdefiniertes Qt QGraphicsItem tooltip
Ich weiß, dass ich setToolTip
verwenden kann, um Text für Tooltip festzulegen. Jetzt möchte ich den Text dynamisch ändern, wenn die Maus an verschiedenen Stellen eines QGraphicsItem
Objekts schwebt.
Was ich denke zu tun ist, wenn ich ein Ereignis QEvent::ToolTip
bekomme, ändere ich den Tooltip-Text in diesem Ereignishandler. Ich kann jedoch keine Ereignisfunktion finden, die QEvent::ToolTip
für QGraphicsItem
empfängt.
Oder gibt es einige Möglichkeiten, ein Ereignis zu behandeln, dass die Maus für 2 Sekunden schwebt.
Wie kann ich es machen?
Haben Sie ['QGraphicsItem :: sceneEvent'] (http://doc.qt.io/qt-5/qgraphicsitem.html#sceneEvent) oder [' QGraphicsItem :: sceneEventFilter'] (http: // doc .qt.io/qt-5/qgraphicsitem.html # sceneEventFilter)? Es funktioniert jedoch möglicherweise nicht, da Sie möglicherweise in einer Schleife landen, in der Sie den Tooltip-Text ständig ändern. Eine bessere Lösung könnte die Verwendung von Child 'QGraphicsItem's sein. – thuga
Ich habe eine neue Klasse implementiert, die 'QGraphicsItem' übernimmt. Und 'QGraphicsItem :: sceneEvent' erhält 'QEvent :: ToolTip' nicht, was auftritt, wenn ein Tooltip angefordert wird. Ich denke, eine Substitution für 'QEvent :: ToolTip' ist ein Ereignis, bei dem die Maus für 2 oder 3 Sekunden schwebt und bleibt. Aber ich habe keine Ahnung, wie ich es machen soll. – Paler