在PyQt中模拟鼠标单击事件
我试图在在PyQt中模拟鼠标单击事件,qt,pyqt,Qt,Pyqt,我试图在ui.goButton小部件上用Python模拟鼠标单击事件 以下是我所做的: QtTest.QTest.mouseClick(self.ui.goButton, QtCore.Qt.LeftButton) 这样做对吗?因为它不起作用。根据您对评论的回复,我将回答您的问题 基本上,信号可以通过 因此,如果要发出QPushButton的clicked()信号 您必须继承QPushButton,并且可以发出类似emit clicked()的信号 将帮助你发出信号 但我的问题是你为什么要这么
ui.goButton
小部件上用Python模拟鼠标单击事件
以下是我所做的:
QtTest.QTest.mouseClick(self.ui.goButton, QtCore.Qt.LeftButton)
这样做对吗?因为它不起作用。根据您对评论的回复,我将回答您的问题 基本上,信号可以通过 因此,如果要发出
QPushButton
的clicked()
信号
您必须继承QPushButton
,并且可以发出类似emit clicked()
的信号
将帮助你发出信号
但我的问题是你为什么要这么做?
通过发出clicked()
信号,您将依次调用connect
ed插槽。。那么,你为什么不能自己直接呼叫插槽,而不是发出信号然后呼叫插槽呢
请记住插槽
只是普通函数,可以像调用其他函数一样调用
或者,如果插槽存在于您将通过信号连接的另一个对象中,则发出您自己的信号,而不是与预定义的信号混淆
总之,即使在较短的时间内也不会发出这种预定义的信号
希望能有帮助
编辑:
哎呀,我没看到PyQt。我习惯了C++的QT。我对Python一无所知。但我相信Qt的大多数概念仍然很常见。因此,我将保留我的答案。我认为我不明白你所说的
模拟是什么意思?您是要处理鼠标单击事件还是要生成鼠标单击事件?@liaK:我要生成鼠标单击事件,也就是说,我要向按钮发送信号(“clicked()”)
,在用户没有点击的情况下。你是在测试还是不想让你的应用程序真的那样工作?@rebus:我真的想那样工作。。。这可能是一个糟糕的设计,但我现在必须接受它并完成它。虽然这可能是回答中特定问题的正确答案,但我需要模拟一个真实的鼠标点击事件,以便我可以在QStyledItemDelegate中将点击传递给鼠标下的小部件。我在研究这个问题时遇到了这个问题。我同意答案,但我认为我的需求仍然是一个有效的用户故事。在IMO的回答中添加这一点是值得的。它可能与使用构造的事件实例执行MousePresseEvent一样简单,但我还不确定。。。。
emit signalToBeEmitted()