【发布时间】:2017-03-11 15:07:32
【问题描述】:
我正在尝试在循环中创建一系列按钮。每个按钮都会获得一个 ID 号,因为它是文本,当单击该按钮时,它应该将 ID 号发送到将打开存档订单的函数。这时候我只想打印订单号来证明信号有效,每个按钮都连接到了正确的订单号。
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)
单击按钮时,我收到一条错误消息,提示“布尔对象没有文本属性”
我尝试直接传递订单号,它会打印“False”,所以仍然是一个布尔值。我不知道布尔值是从哪里来的,一定是信号有问题。
【问题讨论】:
-
如果您在循环中创建按钮,您可能会遇到闭包问题。如果包含循环代码会更容易诊断