不知道如何给出QMouseEvent类的参数。我应该创建一个新类来实现QMouseEvent到我的qtexEdit中吗
class Test(QMainWindow):
def __init__(self):
super().__init__()
self.txt = QTextEdit(self)
self.txt.setMouseTracking(True)
self.txt.mouseReleaseEvent(QMouseEvent())
class Test2(QTextEdit):
def __init__(self):
super().__init__()
def mouseReleaseEvent(self, e):
print("text edit is clicked")
ui = Test()
ui.show()
由于多次询问如何检测影响小部件的事件,因此在本回答中,我将详细介绍解决方案,并将其用作未来问题的标准答案。
要从小部件检测事件,有几种解决方案:
-重写方法
如果小部件有一个处理该事件的方法,那么一个选项是覆盖该方法并将其与信号关联,以便可以通知其他对象
在鼠标释放事件的特定情况下,这由mouseReleaseEvent方法处理
-使用事件过滤器
Qt允许您使用事件过滤器监控事件,因此您可以利用此功能以与先前解决方案类似的方式发出信号
对于从QAbstractScrollArea继承的类,鼠标方法会传输到视口,因此必须监视对象
相关问题 更多 >
编程相关推荐