问题描述
在我的程序中,我有一个列表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 (将#修改为@)