2017-02-01 4 views
2

Ich habe ein Programm, in C++ geschrieben, mit Qt 5.5.1 (kann nicht zu einer anderen Version wechseln), läuft unter Windows (7 oder 10, spielt keine Rolle) .Wie mouseWheelEvent an SWF gesendet wird, in QWebView geladen

Also habe ich etwas FlashWidget, von QWebView subclassed. Es lädt HTML-Datei, analysiert sie und ersetzt% 1 mit entsprechendem Pfad zu * .swf

<object 
    class="flashPlayer" 
    width=90% 
    height=100% 
    type="application/x-shockwave-flash" 
    id="bridgemovie" 
    data="%1" > 
    <param name="allowScriptAccess" value="always"/> 
</object> 

SWF-Datei hat Ereignis-Listener auf Mausereignisse: die Maus nach unten, nach oben und Mausrad

addEventListener(MouseEvent.MOUSE_WHEEL, zoom); //"zoom" is just some internal function 
    addEventListener(MouseEvent.MOUSE_DOWN, mouseDown1); 
    addEventListener(MouseEvent.MOUSE_UP, mouseReleased); 

Problem: Ziehen und Klicken funktioniert ziemlich gut, aber geladene SWF empfängt keine Wheel-Events. Ich kann SWF-Code, nur C++ - und HTML-Teile nicht ändern. Also, wie kann ich mouseWheel Event nativ von JS (oder vielleicht QWebView, wenn erlaubt) an die geladene SWF-Datei übergeben?

P.S. Ich habe versucht, SWF mit QAxWidget zu laden, und WheelEvent wird empfangen, aber es gibt einige Rendering-Probleme, also versuche ich, die Lösung mit QWebView zu reparieren.

Antwort

0

Nun, es sieht aus wie ein Fehler in QWebkit, weil es kein Problem in neueren Versionen und QWebEngine gibt. Versuchen Sie stattdessen, QAxWidget zu verwenden.

Verwandte Themen