Qt:catched mouseMoseEvent不与QWebView html页面元素交互

时间:2015-12-10 10:34:19

标签: c++ qt qwebview qmouseevent

我抓住mouseMoveEvent的{​​{1}}来重新启动屏幕保护程序的计时器。问题是现在QWebView没有分配给HTML元素,所以例如在页面上移动滑动条是不可能的。

我使用connect将mouseMoveEvent绑定到重启槽:

mouseMoveEvent

WebView类:

QObject::connect(_view, SIGNAL(mouseMoveEvent(QMouseEvent*)), _mediaPlayer, SLOT(stop()));

是否有解决方案仍能捕获信号并将其传递给HTML页面?

2 个答案:

答案 0 :(得分:2)

mouseMoveEvent不是信号,而是事件处理程序。您可以重新实现此事件处理程序,并在需要时发出可以连接的信号。

像这样:

MyWebView::mouseMoveEvent(QMouseEvent * e) {
   emit mouseMoved(); // this would be signal you could connect to.
}

答案 1 :(得分:2)

似乎你误解了事件处理程序并发出信号用法。

mouseMoveEvent 是QWidget的成员方法,不是信号,因此您无法连接到它。您可以在子类中覆盖它并发出自己的信号。

如果关闭QWidget的鼠标跟踪,只有在移动鼠标时按下鼠标按钮才会发生鼠标移动事件。也许你需要打电话给 setMouseTracking