有幾種方法來解決它,我會顯示一些:
- 拉姆達functios:
class Widget(QWidget):
def __init__(self, *args, **kwargs):
QWidget.__init__(self, *args, **kwargs)
lay = QGridLayout(self)
for i in range(3):
btn = QPushButton("button-{}".format(i), self)
lbl = QLabel("{}".format(0))
lay.addWidget(btn, i, 0)
lay.addWidget(lbl, i, 1)
btn.clicked.connect(lambda checked, l=lbl: self.fun(l))
def fun(self, lbl):
n = int(lbl.text()) + 1
lbl.setText(str(n))
- 字典
class Widget(QWidget):
def __init__(self, *args, **kwargs):
QWidget.__init__(self, *args, **kwargs)
lay = QGridLayout(self)
self.connections = {}
for i in range(3):
btn = QPushButton("button-{}".format(i), self)
lbl = QLabel("{}".format(0))
lay.addWidget(btn, i, 0)
lay.addWidget(lbl, i, 1)
self.connections[btn] = lbl
btn.clicked.connect(self.fun)
def fun(self):
lbl = self.connections[self.sender()]
n = int(lbl.text()) + 1
lbl.setText(str(n))
您可以通過先寫入一行代碼來創建所有這些行。這很簡單。 –