使用循环使用click事件创建pyqt5按钮

时间:2017-12-12 13:03:43

标签: python pyqt pyqt5

如何使用loop使用循环

创建PushButtons
list = ['apple','orange','banana','carrot']
for i,s in enumerate(list)
    list[i] = QtWidgets.QPushButton(self.scrollAreaWidgetContents)
    list[i].setText(s[0])
    list[i].clicked.connect(lambda:getbuttontext(list[i].text()))

和这里是getbuttontext函数:

def getbuttontext(n):
    print(n)
  

我的问题是当我点击任何按钮时功能打印“胡萝卜”   如何修复它...

1 个答案:

答案 0 :(得分:1)

解决方案很简单,定义lambda函数的输入参数:

fruits = ['apple','orange','banana','carrot']
for i,s in enumerate(fruits)
    btn = QtWidgets.QPushButton(self.scrollAreaWidgetContents)
    btn.setText(s[0])
    btn.clicked.connect(lambda checked, text=s : getbuttontext(text))

注意: 我把检查放了,因为它是默认传递点击信号的参数。