我有一个程序,用 C++ 编写,使用 Qt 5.5.1(不能切换到另一个版本),在 Windows(7 或 10,无所谓)下运行。
所以我有一些 FlashWidget,它是 QWebView 的子类。它加载 html 文件,对其进行解析并将 %1 替换为 *.swf 的适当路径
<object
class="flashPlayer"
width=90%
height=100%
type="application/x-shockwave-flash"
id="bridgemovie"
data="%1" >
<param name="allowScriptAccess" value="always"/>
</object>
SWF 文件具有鼠标事件的事件监听器:鼠标按下、向上和鼠标滚轮
addEventListener(MouseEvent.MOUSE_WHEEL, zoom); //"zoom" is just some internal function
addEventListener(MouseEvent.MOUSE_DOWN, mouseDown1);
addEventListener(MouseEvent.MOUSE_UP, mouseReleased);
问题:拖动和点击效果很好,但加载的 SWF 不接收滚轮事件。我不能修改 SWF 代码,只能修改 C++ 和 HTML 部分。那么,我如何才能将 mouseWheel 事件从 JS(或者,如果允许的话,可能是 QWebView)本地传递到加载的 SWF 文件?
P.S. 我试过用 QAxWidget 加载 SWF,并且收到了 wheelEvent,但是有一些渲染问题,所以我尝试用 QWebView 修复解决方案。
最佳答案
嗯,这看起来像是 Webkit 中的一个错误,因为在较新的版本和 WebEngine 中没有这样的问题。将尝试使用 QAxWidget。
关于c++ - 如何将 mouseWheelEvent 发送到 SWF,加载到 QWebView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41983332/