如何解决PyQt5问题,使用zip和lambda函数遍历QPushButtons和range列表
在我的程序中,我有一个列表fields
,其中包含QPushButton
个对象(self.field1
,self.field2
... self.field9
)。
self.fields = []
self.field1 = QPushButton(self.gridLayoutWidget)
self.fields.append(self.field1)
...
self.field9 = QPushButton(self.gridLayoutWidget)
self.fields.append(self.field9)
我想将每个QPushButton
的信号clicked
连接到功能为change_field(position)
的插槽,该插槽需要另一个参数,因此我正在使用zip()
和{{ 1}}函数。这是我想要实现的目标(此代码可以正常运行):
lambda
现在,如果我尝试使用self.field1.clicked.connect(lambda: self.game.change_field(0))
self.field2.clicked.connect(lambda: self.game.change_field(1))
self.field3.clicked.connect(lambda: self.game.change_field(2))
self.field4.clicked.connect(lambda: self.game.change_field(3))
self.field5.clicked.connect(lambda: self.game.change_field(4))
self.field6.clicked.connect(lambda: self.game.change_field(5))
self.field7.clicked.connect(lambda: self.game.change_field(6))
self.field8.clicked.connect(lambda: self.game.change_field(7))
self.field9.clicked.connect(lambda: self.game.change_field(8))
这样的循环来这样做:
for
这是行不通的...我觉得我一定很容易错过一些东西,但是我无法以某种方式解决这个问题。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。