Tôi đang cố gắng xây dựng một máy tính với PyQt4 và kết nối các tín hiệu 'nhấp()' từ các nút không như dự kiến. Im tạo các nút của tôi cho các số bên trong vòng lặp for nơi tôi cố gắng kết nối chúng sau đó.Kết nối các khe và tín hiệu trong PyQt4 trong vòng lặp
def __init__(self):
for i in range(0,10):
self._numberButtons += [QPushButton(str(i), self)]
self.connect(self._numberButtons[i], SIGNAL('clicked()'), lambda : self._number(i))
def _number(self, x):
print(x)
Khi tôi nhấp vào tất cả các nút in ra '9'. Tại sao vậy và làm thế nào tôi có thể sửa lỗi này?
Sử dụng 'functools.partial' cho điều này là một ý tưởng rất hay. +1 – delnan
Cảm ơn bạn. Tôi sẽ đi với giải pháp functools.partial. – lukad