PyQt槽函数添加参数

PyQt槽函数添加参数

这篇文章的前提是你得知道槽函数是啥,在这边我就不解释了,如果你是自定义信号,并且使用emit()方法进行发送的,那在emit里面就可以传入参数,这个懂得都懂,不懂得可以看一下这个大佬的文章link.他写的非常详细,如果你要是只是类似于对于按钮这方面传参不晓得,可以看我的
下面是不传参

import sys
from PyQt5.QtWidgets import QWidget, QApplication, QPushButton

class MainWindow(QWidget):
    def __init__(self, parent=None):
        super().__init__(parent)
        self.setWindowTitle("MainWindow Demo")
        self.resize(800, 600)

        button = QPushButton("close", self)
        # 连接内置信号与自定义槽
        button.clicked.connect(self.onClose)

    # 自定义槽函数
    def onClose(self):
        self.close()

if __name__ == "__main__":
    app = QApplication(sys.argv)
    window = MainWindow()
    window.show()
    sys.exit(app.exec_())

对比,如果需要传入参数,看下面的代码

import sys
from PyQt5.QtWidgets import QWidget, QApplication, QPushButton

class MainWindow(QWidget):
    def __init__(self, parent=None):
        super().__init__(parent)
        self.setWindowTitle("MainWindow Demo")
        self.resize(800, 600)
        parameter = "银行股真的垃圾,千万不要买"
        button = QPushButton("close", self)
        # 连接内置信号与自定义槽
        button.clicked.connect(lambda: self.onClose(parameter))

    # 自定义槽函数
    def onClose(self, parameter):
        print(parameter)
        self.close()

if __name__ == "__main__":
    app = QApplication(sys.argv)
    window = MainWindow()
    window.show()
    sys.exit(app.exec_())

所以,用lambda函数可以完美的解决这个问题
button.clicked.connect(lambda: self.onClose(parameter))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值