This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
tooltips [2017/12/02 19:26] 178.91.253.70 |
tooltips [2017/12/02 19:51] (current) 178.91.253.70 |
||
|---|---|---|---|
| Line 10: | Line 10: | ||
| * Content-Tooltips: | * Content-Tooltips: | ||
| - | * > werden ohne Verzögerung angezeigt | + | |
| + | - werden ohne Verzögerung angezeigt | ||
| + | |||
| + | - geringe Komplexität und Interaktionsmöglichkeiten: stellen meist nur den Wert eines Parameters dar, | ||
| + | enthalten selber keine klickbaren Elemente | ||
| + | |||
| + | * Info-Tooltips | ||
| + | |||
| + | - werden erst nach einer Verzögerung angezeigt | ||
| + | |||
| + | - höhere Komplexität und Interaktionsmöglichkeiten: enthalten möglicherweise längere Erklärungen, | ||
| + | Icons, Bilder, Buttons, Hyperlinks | ||
| + | |||
| + | ---- | ||
| + | |||
| + | **Verwendung** | ||
| + | |||
| + | Die GUI von MPV ist zu Teilen in QML und zu Teilen in C++ implementiert. Als übergreifendes Konzept lassen sich | ||
| + | Tooltips von beiden Sprachen aus ansteuern. | ||
| + | |||
| + | **QML** | ||
| + | |||
| + | Um einem QML-Item ein Tooltip zu geben, reicht es ein ToolTipHandler-Item als Kindelement anzulegen. | ||
| + | |||
| + | <code c> | ||
| + | { | ||
| + | Button { | ||
| + | text : ”Clear” | ||
| + | ToolTipHandler{ | ||
| + | text: ”Remove all items from the list ” | ||
| + | } | ||
| + | } | ||
| + | } | ||
| + | </code> | ||
| + | |||
| + | Listing: Ein QML-Button mit einem einfachen Info-Tooltip | ||
| + | |||
| + | <code c> | ||
| + | { | ||
| + | Button { | ||
| + | text : ”Dimensions” | ||
| + | ToolTipHandler { | ||
| + | |||
| + | text: ”1024x1024” | ||
| + | isInfoTooltip: false | ||
| + | } | ||
| + | } | ||
| + | } | ||
| + | </code> | ||
| + | |||
| + | Listing: Ein QML-Button mit einem einfachen Content-Tooltip | ||
| + | |||
| + | |||
| + | <code c> | ||
| + | { | ||
| + | Button { | ||
| + | text : ”Sort rows” | ||
| + | ToolTipHandlerf | ||
| + | text : ”Set default row order” | ||
| + | linkRef : ”video_sort_rows” | ||
| + | linkImageSource: ” qrc:/Images/video_link.png” | ||
| + | } | ||
| + | } | ||
| + | } | ||
| + | </code> | ||
| + | |||
| + | Listing: Ein QML-Button mit einem Info-Tooltip. Dieser enthält ein Bild mit einem Link. linkRef enthält eine Referenz auf einen Hyperlink. linkImageSource enthält den Pfad für das angezeigte Bild. | ||
| + | |||
| + | |||
| + | |||
| + | <code c> | ||
| + | { | ||
| + | Button { | ||
| + | text: ”KDE plot” | ||
| + | ToolTipHandler { | ||
| + | text: ’Example text <br><img src =” qrc:/Images/plot_kde_all.png”> | ||
| + | <br> Some more text ... ’ | ||
| + | } | ||
| + | } | ||
| + | } | ||
| + | </code> | ||
| + | |||
| + | Listing: Ein QML-Button mit einem Info-Tooltip mit Bild, das im Text eingebunden ist. | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | __**Ein ToolTip pro Fenster**__ | ||
| + | |||
| + | Soll ein Tooltip in einem anderen Fenster außer dem Hauptfenster (z.B. in einem Dialog) angezeigt werden, | ||
| + | benötigt dieses Fenster eine eigene Instanz von ToolTip. ToolTipHandler müssen auf diese Instanz verweisen indem tooltipRef auf die id dieser Instanz gesetzt wird. | ||
| + | |||
| + | |||
| + | <code c> | ||
| + | { | ||
| + | Window { | ||
| + | ToolTip { | ||
| + | id : exampleTooltip | ||
| + | z : 1 | ||
| + | } | ||
| + | Button { | ||
| + | ToolTipHandler { | ||
| + | tooltipRef : exampleTooltip | ||
| + | text : ” Example Text ” | ||
| + | } | ||
| + | } | ||
| + | } | ||
| + | } | ||
| + | </code> | ||
| + | |||
| + | Listing: Ein Tooltip in einem eigenen Fenster. | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | <code c> | ||
| + | { | ||
| + | Button { | ||
| + | text : ”KDE plot” | ||
| + | ToolTipHandler { | ||
| + | text: ’ Example text <br ><img src =” qrc:/Images/plot_kde_all.png”> | ||
| + | <br >Some more text ... ’ | ||
| + | } | ||
| + | } | ||
| + | } | ||
| + | </code> | ||
| + | |||
| + | Listing: Ein QML-Button mit einem Info-Tooltip mit Bild, das im Text eingebunden ist. | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | <code c> | ||
| + | { | ||
| + | Button { | ||
| + | text : ”KDE plot” | ||
| + | ToolTipHandler { | ||
| + | text : ’Example text <br ><img src =” qrc:/Images/plot_kde_all.png”> | ||
| + | <br >Some more text ... ’ | ||
| + | } | ||
| + | } | ||
| + | } | ||
| + | </code> | ||
| + | |||
| + | Listing: Ein QML-Button mit einem Info-Tooltip mit Bild, das im Text eingebunden ist | ||
| + | |||
| + | ---- | ||
| + | |||
| + | **__C++__** | ||
| + | |||
| + | |||
| + | Um Tooltips aus C++ Code heraus zu setzen, ist zuerst ein Pointer auf das globale ToolTip-Objekt notwendig (Das | ||
| + | globale ToolTip-Objekt bezieht sich immer auf das Hauptfenster). Das GlobalIController Singleton enthält einen | ||
| + | Pointer auf ein GuiState-Objekt, welcher nur gesetzt ist, wenn auch tatsächlich eine grafische Oberfläche geladen | ||
| + | wurde. Die Methode getTooltipPtr des GuiState-Objekts gibt eine Pointer auf das einzige Tooltip-Objekt. Die | ||
| + | Methoden setContentTooltip und setInfoTooltip werden zum anzeigen der jeweiligen Arten von Tooltips verwendet. | ||
| + | hideTooltip sollte aufgerufen werden, wenn die Maus den entsprechenden aktiven Bereich verlässt. | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||