0
コマンド配列には、名前とイベントを処理する関数を含むタプルのリストが含まれています。各ペアに対して、新しいボタンが作成され、QListWidgetに追加されます。 問題は、すべてのボタンが同じハンドラ関数を呼び出すことです。リストの最後のもの。私は私のデバッガでチェックし、リストを正しくループし、正しいループ関数が各ループに渡されます。pyqt4のボタンは同じイベントハンドラを持たなくても終了します
ボタンを生成する関数です。
def load_commands(self):
for name, handler in commands:
btn = QtGui.QPushButton(name)
btn.clicked.connect(lambda: handler(self))
item = QtGui.QListWidgetItem()
item.setSizeHint(Qt.QSize(0, 30))
self.list_commads.addItem(item)
self.list_commads.setItemWidget(item, btn)
[EDIT]だけ試み各ループの最後でNoneにBTN項目を設定します。うまく行かなかった。
ありがとうございました。それがそれを解決しました。 –