Seite 1 von 1

query-tooltip event identisch mit motion-notify?

Verfasst: Samstag 7. März 2009, 14:51
von Barabbas
Hallo zusammen,

in meinem Programm fange ich das query-tooltip event ab, um den Tooltip dynamisch mit Informationen zu befüllen. Zu dieser Variante gibt es leider keine Alternative (set_tooltip_text / -markup ist für meinen Fall also nicht passend).

Wie auch immer: Ich stelle nun fest, dass das query-tooltip event entgegen meiner Intuition nicht ausgelöst wird, bevor ein Tooltip angezeigt wird, sondern eigentlich bei jeder Mausbewegung. In 99% der query-tooltip-Fälle wird also anschließend gar kein Tooltip erzeugt, da der Benutzer nur mit der Maus über das Widget fährt und nicht lange genug auf einer Stelle verharrt, um den Toolltip anzuzeigen.

Das scheint mir etwas unerwünscht oder zumindest wenig hilfreich zu sein, da ich nun vor dem Problem stehe, andauernd irgendwelche Datenbankabfragen für den Tooltip zu machen, obwohl der meist gar nicht angezeigt wird.

Ich habe schon "von Hand" ein Delay eingebaut, um die Anzahl der DB-Queries zu verringern, das ist aber auch keine besonders gute Lösung.
Kennt ihr eine Möglichkeit, ein Tooltip genau vor seiner Erstellung abzufangen?

Schönen Dank schonmal,

Barabbas

Verfasst: Mittwoch 11. März 2009, 12:31
von ms4py
Nicht nur nach deiner Intuition sondern auch nach der Beschreibung müsste das eigentlich das richtige Signal sein:
The "query-tooltip" signal is emitted when the GtkSettings:gtk-tooltip-timeout has expired with the cursor hovering "above" widget;
Was sagt denn:

Code: Alles auswählen

settings = gtk.settings_get_default()
print settings.props.gtk_tooltip_timeout

Verfasst: Mittwoch 11. März 2009, 14:52
von Barabbas
Der von dir genannte Befehl gibt "500" zurück. Die tatsächliche Verzögerung liegt aber anscheinend bei 0.

Ich habe mal einen Bug dazu erstellt: http://bugzilla.gnome.org/show_bug.cgi?id=574941

Danke für deinen Hinweis auf die Settings.

Daniel