Seite 1 von 1

Maustreiber "nachladen"

Verfasst: 21. Juni 2010 11:45
von Ghal_Maraz
hi,

ich programmier zurzeit mit Qt für ein board mit linux und touchscreen.
ich würde gerne folgendes feature in meine applikation einbauen:

per default bedient man die anwendung per touch und der cursor ist
versteckt. steckt man eine maus ein erscheint der cursor und man kann
auch mit der maus die GUI bedienen.

Das mit dem cursor verstecken ist kein problem, aber weiß jemand wie
ich dem QWSServer zur Laufzeit sagen kann, dass er die Maustreiber
erneut suchen und laden soll?

Ich habe schon mit resumeMouse() und ein paar anderen Funktionen
vom QWSServer rumprobiert, aber ich bin zu keinem zufriedenstellenden
Ergebnis gekommen.

Am weitesten bin ich noch gekommen als ich QWS_MOUSE_PROTO
gelöscht habe und in der Appliaktion setDefaultMouse() angewendet
habe. Allerdings wird dabei wohl die tslib nicht ordentlich initialisiert oder
Ähnliches und der mousecursor bleibt an der oberen Bildschirmkante
hängen.

Aber was hundertprozentiges habe ich noch nicht hingekriegt.

Hat jemand damit Erfahrungen oder kann mir irgendwelche Tipps oder
Lösungen zu dem Thema geben?

Danke schonmal.

Mit freundlichen Grüßen
Ghal Maraz

[EDIT]
Wenn ich die Maus beim Starten eingesteckt habe, während der
Anwendung abziehe, wieder einstecke und nach dem Einstecken
resumeMouse() aufrufe funktioniert sie, aber wenn ich einmal
resumeMouse() aufrufe, während sie nicht eingesteckt ist, funktioniert sie
garnicht mehr (das passiert wahrscheinlich auch beim Start ohne Maus).
Als ob der QWSServer den Treiber entgültig verwirft, wenn er einmal
nicht mit ihm klarkommt.
[/EDIT]

Verfasst: 21. Juni 2010 14:41
von Ghal_Maraz
Es reicht für meine Zwecke wenn ich als QWS_MOUSE_PROTO die tslib und die IntelliMouse angeben. Die IntelliMouse mit /dev/input/mice statt /dev/input/mouse1. Die ist nämlich wegen dem ts-device auch ohne angeschlossene maus vorhanden.
und probleme, weil sowohl die tslib als auch die maus nach mice streamen, gibt es auch nicht.

Verfasst: 23. Juni 2010 07:30
von Ghal_Maraz
Leider gibt es wie ich mir schon gedacht hab doch leichte Verzehrungen mit
dieser Lösung. Das ist zwar nicht für alle Anwendungen kritisch, aber falls
jemand eine bessere Löscung hat bin ich ganz Ohr.

Verfasst: 24. Juni 2010 07:45
von Ghal_Maraz
Habs endlich doch noch hingekriegt.
Eigentlich ganz einfach:
Mit QMouseDriverFactory einen eigenen MouseHandler
erstellen und mit suspend und resume die einzelnen
Mousehandler nach belieben deaktivieren und aktivieren.