Seite 1 von 1
[Gelöst] Probleme mit ToolTips und "Hoovering" mit
Verfasst: 2. Februar 2010 08:44
von chrislo1976
Hallo!
Ich verwende seit kurzem Windows7/VS2008 und Qt4.6.1.
Jetzt ist mir aufgefallen dass in unserem Projekt bei manchen Fenstern weder die ToolTips noch die "Hoovering"-Effekte (z.B. Buttons werden farblich hervorgehoben beim Drüberfahren) funktionieren.
Komischerweise funktioniert das aber mit gleichem Sourcecode (auch die selbe EXE) unter WindowsXP!
Bei den Fenstern die nicht funktionieren wurde die UI teilweise "von Hand" programmiert, also ohne den Designer.
Ich versuche noch einen Testcase zu erstellen, um das Problem reproduzieren zu können. Vielleicht hatte jemand von euch schon solche Probleme und hätte vorab einen Tipp für mich!?
Gruß,
Christian
Verfasst: 2. Februar 2010 09:05
von upsala
Schau mal ob die ToolTip-Demo überhaupt funktioniert.
Verfasst: 2. Februar 2010 09:30
von chrislo1976
Hallo!
Die ToolTip-Demos gehen. Bei den meisten Fenstern in unserer Anwendung gehen die Tooltips auch, nur bei (wie ich inzwischen genau ermittelt hab) 3 gehen sie nicht.
Und in diesen 3 Fenstern haben wir bei der UI-Erstellung "manuellen" Code und Designer-UI-Code vermischt.
Mich wundert halt nur dass es unter XP geht...
Gruß,
Christian
Verfasst: 15. Februar 2010 07:14
von chrislo1976
Hallo!
Bin an der Sache noch dran, kann nur momentan nicht direkt daran arbeiten/forschen.
Ich habs bisher immer noch nicht geschafft das Problem zu "isolieren"! Wenn ich Teile der UI, in der das Problem auftritt, in ein ganz leeres Projekt kopiere, funktioniert es dort.
Ich denke dass es deswegen eine Verkettung ungünstiger Dinge ist, die das ganze unter Windows7 nicht funktionieren lässt. Wie gesagt, unter XP gehts...
Gruß,
Christian
Verfasst: 26. Februar 2010 13:35
von chrislo1976
Hallo!
Hab jetzt zufällig rausgefunden dass das Problem mit dem genau gleichem Pogrammcode, allerdings kompiliert mit Qt4.5.2 NICHT besteht; auch unter Windows7 nicht!
Wenn ich die mit Qt4.5.2-Exe dann mit Qt4.6.2-DLLs "füttere" tritt der Fehler wieder auf.
Komisch...
Verfasst: 17. März 2010 11:57
von chrislo1976
Hallo zusammen!
Hab jetzt zwar eine Lösung gefunden, aber nicht wirklich die Ursache ermitteln können:
In den Fenstern in denen das Problem auftrat, hatten wir ein sog. OverlayWidget eingebracht. Dieses OverlayWidget ist eigentlich immer transparent, nur wenn die Daten des Fensters aktualisiert werden, wird eine halb-transparente Anzeige "Aktualisierung läuft..." angezeigt. Nach dem Aktualisieren wird der Text wieder ausgeblendet.
Dieses Widget hat ansonsten keine Funktion und benötigt deswegen auch keine Maus-Events, deswegen hat es das Attribut WA_TransparentForMouseEvents gesetzt.
Wie schon gesagt, mit "Qt <= 4.5.2 || ! Windows7" funktionierte das auch. Weswegen es im anderen Fall nicht geht konnte ich leider nicht herausbringen.
Gelöst hab ich es aber trotzdem so:
Im Overlay-Widget wird beim Anzeigen des Textes das Fenster mittels raise() in den Vordergrund gebracht und wenn der Text gelöscht wird, mittels lower() wieder zurückgestellt. Vorher war das Fenster immer im Vordergrund und hat scheinbar die Mausevents, trotz gesetztem Attribut, selbst geschluckt.
Ist evtl. nicht schön, aber so funktionierts zumindest (erstmal).
Gruß,
Christian