Receive gestures in PyQt5 (for Android)(在PyQt5中接收手势(适用于Android))
本文介绍了在PyQt5中接收手势(适用于Android)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
好的,这个问题以前已经问过了,但我还没有找到答案..
我正在尝试使用QLabel
在图像之间左右滑动,但我的基于PyQt5的应用程序还没有成功地接收到任何手势事件。
以下是我所拥有的:
class MyViewer(QtWidgets.QLabel):
def __init__(self, parent=None):
super().__init__(parent=parent)
self.setAttribute(QtCore.Qt.WA_AcceptTouchEvents) # just gave it a try
self.grabGesture(QtCore.Qt.SwipeGesture)
def event(self, event):
if event.type() == QtCore.QEvent.Gesture: # <= this won't happen
print("Hello event!")
return super().event(event)
我也试图查找QtWidgets.QGestureEvent
,但即使只打印出event.type()
,我也只能看到看似与任何手势无关的事件(除了一些QToucheEvent
实例)
类似的问题是this one、this one、this one,我甚至阅读了some documentation,但我还没有看到可用的示例。仅问题和示例C++代码片断..
我在Linux和Android上都使用了PyQt5.15.0,我还没有看到任何手势的痕迹。 我忘了做什么了?是否必须以某种方式设置父级?
推荐答案
您用几个手指滑动?根据the Qt forum的说法,Qt.SwipeGesture
只有在两个或更多手指滑动时才会注册,具体取决于平台。一个手指表示为QtGui.QMouseEvent
。
如果您一直在使用两个或多个手指,也有可能您没有看到事件的原因是您没有明确地接受它们。docs说:
当QGesture到达您的小部件时,它默认情况下被接受。但是,最好始终显式接受或拒绝手势。一般规则是,如果您接受某个手势,则表示您正在使用它。如果你忽视它,你就对它不感兴趣。忽略某个手势可能意味着该手势将被提供给另一个目标对象,或者它将被取消。[...]忽略该手势将意味着永远不会再向您提供该手势。
这篇关于在PyQt5中接收手势(适用于Android)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:在PyQt5中接收手势(适用于Android)


猜你喜欢
- YouTube API v3 返回截断的观看记录 2022-01-01
- 检查具有纬度和经度的地理点是否在 shapefile 中 2022-01-01
- 如何使用PYSPARK从Spark获得批次行 2022-01-01
- CTR 中的 AES 如何用于 Python 和 PyCrypto? 2022-01-01
- 使用公司代理使Python3.x Slack(松弛客户端) 2022-01-01
- 我如何透明地重定向一个Python导入? 2022-01-01
- 我如何卸载 PyTorch? 2022-01-01
- 计算测试数量的Python单元测试 2022-01-01
- ";find_element_by_name(';name';)";和&QOOT;FIND_ELEMENT(BY NAME,';NAME';)";之间有什么区别? 2022-01-01
- 使用 Cython 将 Python 链接到共享库 2022-01-01