clicked.connect 传递 参数
时间: 2024-02-18 22:01:30 浏览: 23
在PyQt5中,我们可以使用`lambda`表达式来实现在信号`clicked`连接槽函数时传递参数的功能。
例如,我们创建一个`QPushButton`,点击按钮后将按钮的文本内容输出到控制台:
```python
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setGeometry(300, 300, 300, 200)
self.setWindowTitle('Button')
self.btn = QPushButton('Click me', self)
self.btn.move(20, 20)
self.btn.clicked.connect(lambda: self.buttonClicked(self.btn.text()))
self.show()
def buttonClicked(self, text):
print(text)
if __name__ == '__main__':
app = QApplication([])
ex = Example()
app.exec_()
```
在这个例子中,我们使用`lambda`表达式来传递参数。`lambda`表达式是一种匿名函数,可以接受任意数量的参数,用冒号分隔参数和表达式,返回表达式的值。在这个例子中,我们将按钮的文本内容作为参数传递给`buttonClicked()`方法。
注:在实际应用中,使用`lambda`表达式传递参数时,需要保证传递的参数类型与槽函数的参数类型一致。