【发布时间】:2020-04-30 01:25:29
【问题描述】:
我有一本 QPushButtons 字典,我试图在按下某个按钮时更改文本,但它只更改最后一个按钮。我认为问题在于每次通过 3 时,我都不知道为什么会这样。 我的代码如下所示:
class App(QWidget):
def __init__(self):
super().__init__()
self.buttons = {}
for x in range(1, 4):
self.buttons[x] = QPushButton(self)
self.buttons[x].setText("TestButton")
self.buttons[x].resize(70, 30)
self.buttons[x].move(40, 40*x)
self.buttons[x].clicked.connect(lambda: self.ButtonPressed(x))
self.show()
def ButtonPressed(self, x):
self.buttons[x].setText("Text Changed!")
【问题讨论】:
-
将
self.buttons[x].clicked.connect(lambda: self.ButtonPressed(x))更改为self.buttons[x].clicked.connect(lambda _, x=x: self.ButtonPressed(x))