Python QPushButton 列表点击添加数字到列表
使用 lambda 表达式实现 QPushButton 列表点击添加数字
在使用 Python 的 PyQt 库时,我们经常需要创建 QPushButton 列表,并希望在点击每个按钮时执行不同的操作。本文将介绍如何使用 lambda 表达式将槽函数与按钮的点击事件关联起来,并实现点击按钮将数字添加到列表的功能。
创建 QPushButton 列表
# 数字按键
numButton = [QPushButton(self) for i in range(10)]
# 0
numButton[0].setText('0')
numButton[0].setGeometry(buttonInitX+buttonSize, buttonInitY-buttonSize, buttonSize, buttonSize)
numButton[0].clicked.connect(self.pushZero)
# 1~9
for i in range(1, 10):
numButton[i].setText(str(i))
numButton[i].setGeometry(buttonInitX+buttonSize*((i-1)%3), buttonInitY+buttonSize*((i-1)//3), buttonSize, buttonSize)
使用 lambda 表达式关联槽函数
我们希望实现一个槽,当点击按钮 numButton[i] 时,能给 self 的列表 ope 加入数字 i 内容。可以使用 lambda 表达式来将槽函数与按钮的点击事件关联起来,并在槽函数中将数字 i 添加到 self 的列表 ope 中。
numButton[i].clicked.connect(lambda i=i: self.ope.append(i))
在 lambda 表达式中,我们将 i 作为参数传递给槽函数,并在槽函数中使用 self.ope.append(i) 将数字 i 添加到 self 的列表 ope 中。
这样,当点击按钮 numButton[i] 时,会触发 lambda 表达式,将数字 i 添加到 self 的列表 ope 中。
原文地址: https://www.cveoy.top/t/topic/qobt 著作权归作者所有。请勿转载和采集!