PySide2的QPushButton使用sender()后找不到对象
因为需要对未知数量的按钮绑定点击事件触发的函数,同时需要每个按钮需要传入不同的参数好区分点击的是哪一个,所以使用了sender()。代码如下
new_button_widget = QPushButton(self.log_widget)
new_button_widget.clicked.connect(lambda:self.testfunc(new_button_widget.sender().objectName()))
这段代码在PyQt5下可以运行,由于工作需要我将它换成了PySide2,于是出现了上面的问题
报错信息如下:

目前只测出将sender()去掉后程序无报错但是按钮传递的参数全部都变成一样
经过测试发现按钮对象调用sender()之后对象类型变为NoneType,但不知道具体原因和结局办法
关于 LearnKu
请问楼主解决了这个问题吗?我现在也遇到了这个问题,百思不得其解
下面这个 lambda 函数中的
new_button_widget并不是这时候的new_button_widget, 而是事件发生时的new_button_widget, 这个问题在 Python 中常常会出错.一般都是使用预设参数值来处理