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
[Gelöst] Probleme mit ToolTips und "Hoovering" mit
-
chrislo1976
- Beiträge: 105
- Registriert: 24. Februar 2008 09:45
[Gelöst] Probleme mit ToolTips und "Hoovering" mit
Zuletzt geändert von chrislo1976 am 17. März 2010 11:57, insgesamt 1-mal geändert.
-
chrislo1976
- Beiträge: 105
- Registriert: 24. Februar 2008 09:45
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
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
-
chrislo1976
- Beiträge: 105
- Registriert: 24. Februar 2008 09:45
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
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
-
chrislo1976
- Beiträge: 105
- Registriert: 24. Februar 2008 09:45
-
chrislo1976
- Beiträge: 105
- Registriert: 24. Februar 2008 09:45
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
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