在使用PyQt5编写的python3.5应用程序中,我有类似mouseReleaseEvents
self.scene1.mouseReleaseEvent = self.setScene("1")
当它们有变量要传递时,它们都会在应用程序启动时触发,而在实际单击时不会触发。在
但是,如果我删除变量,它们会在按下时工作,并且不会在应用程序启动时触发:
^{pr2}$但我得给这个函数加一个变量
def setScene(self, scene):
print(scene)
关于变量为什么会导致这种行为以及如何修复它,有什么建议吗?在
可能在每个GUI中,当您将函数绑定到事件时,您必须使用函数名—这意味着没有
()
和参数。在你可以有两种方法
“无聊”:创建没有参数的函数并分配给事件
“popular”:使用
lambda
创建匿名函数我不知道,但是
mouseReleaseEvent
可能与event
对象一起运行函数,该对象包含有关事件的信息,因此您必须获取它如果您必须在
for x
循环中使用lambda
,并在lambda
函数中使用x
,那么您需要因为}。在
lambda
是"lazy"
,当你定义lambda
时,它不会将x
中的值复制到函数中,但是当你释放鼠标时,它从x
获取值,但此时x
的最后一个值来自{相关问题 更多 >
编程相关推荐