Python 使用循环创建带有单击事件的pyqt5按钮
如何使用“使用循环连接”创建按钮Python 使用循环创建带有单击事件的pyqt5按钮,python,pyqt,pyqt5,Python,Pyqt,Pyqt5,如何使用“使用循环连接”创建按钮 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())) 下面
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)
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))
我的问题是,当我点击任何按钮时,函数会打印“胡萝卜”
如何修复它请
解决方案很简单,定义lambda函数的输入参数:
def getbuttontext(n):
print(n)
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))
注意:
我选中了,因为默认情况下,它是传递单击信号的参数。请编辑您的问题并添加真实问题。不清楚你在问什么…你的问题是什么?PHP和你的问题有什么关系?给我一个函数,可以打印页面中每个按钮的文本loop@Derar什么按钮,什么循环?同时显示您试图解决的问题,请阅读SO规则:@Derar检查我的当前答案,您不应使用列表存储字符串和按钮。列表也是一个保留字