1
ループ内に一連のボタンを作成しようとしています。各ボタンはテキストとしてID番号を取得し、ボタンをクリックするとID番号をアーカイブされた注文を開く関数に送信することになっています。現時点では、信号が機能し、各ボタンが正しい注文番号に接続されていることを証明する注文番号を印刷したいだけです。Pythonループで作成されたButtonから信号を送信できません
ui.cmdOpen = QtWidgets.QPushButton(ui.frOrdHist)
ui.cmdOpen.setGeometry(QtCore.QRect(269, line1Y, 61, 22))
ui.cmdOpen.setText(iOrderId)
ui.cmdOpen.setObjectName("cmdOpen")
ui.cmdOpen.clicked.connect(lambda button=ui.cmdOpen:displayOrder(ui, button))
def displayOrder(ui, button):
i = button.text()
print(i)
私はボタンをクリックすると、私は「ブーリアンオブジェクトがテキスト属性を持っていません」というエラーメッセージ
を得るブールので、まだ私は、直接注文番号を渡してみました、それが「偽」印刷します。ブール値がどこから来ているのか分かりませんが、信号に何か間違っているはずです。
ループでボタンを作成している場合は、クロージャの問題が発生している可能性があります。ループコード – theodox
が含まれていると診断が容易になります。http://stackoverflow.com/questions/15080731/call-a-function-when-a-button-is-pressed-pyqt – intrepidhero