【问题标题】:QWebView doesn't recognize TouchEvents correctly?QWebView 不能正确识别 TouchEvents?
【发布时间】:2016-10-21 05:29:04
【问题描述】:

我在任何地方都找不到对这个错误的任何引用...

我有一个带有 QWebView 的小部件,我正在尝试通过触摸屏与它进行交互。每次触摸屏幕,我都会收到消息:

Got touch without getting TouchBegin for id ####

#### 是一个(看似任意的)四位数。这是我的代码:

import sys
from PyQt4 import QtGui, QtCore, QtWebKit
from PyQt4.QtGui import *
from PyQt4.QtCore import *
from PyQt4.QtWebKit import *

if __name__ == '__main__':
    app = QApplication(sys.argv)
    browser_window = QWebView()
    browser_window.load(QUrl("http://www.wikipedia.org"))
    browser_window.setAttribute(Qt.WA_AcceptTouchEvents)
    browser_window.show()

    app.exec_()

以前有人见过这个错误吗?或者类似的东西?

我尝试安装一个事件过滤器,所以看看 QWebView 实际接收的内容,尽管有 WA_AcceptTouchEvents 标志,QWebView 接收的唯一事件是 mouse 事件。

【问题讨论】:

    标签: qt4 pyqt4 qwebkit


    【解决方案1】:

    我认为问题出在 Ubuntu 的 Qt 4.8 补丁上。我在这里发现了一个类似的问题:

    https://gabrbedd.wordpress.com/2012/07/10/getting-multitouch-qt-on-ubuntu-12-04/

    我认为切换到 Qt5 会解决这个问题,我用 PyQt 确认了这一点。这有效(在安装了一些 python3-pyqt5 的东西之后):

    #!/usr/bin/python3
    
    import sys
    from PyQt5 import QtGui, QtCore, QtWebKit
    from PyQt5.QtGui import *
    from PyQt5.QtWidgets import *
    from PyQt5.QtCore import *
    from PyQt5.QtWebKit import *
    from PyQt5.QtWebKitWidgets import *
    
    if __name__ == '__main__':
        app = QApplication(sys.argv)
        browser_window = QWebView()
        browser_window.load(QUrl("http://www.wikipedia.org"))
        browser_window.setAttribute(Qt.WA_AcceptTouchEvents)
        browser_window.show()
    
        app.exec_()
    

    【讨论】:

      猜你喜欢
      • 2011-04-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多