pyside6 项目 QLineEdit 创建信号与槽时lambda 传参

QLineEdit 信号与槽

  • editingFinished:编辑完成时触发的信号。
  • returnPressed:按下回车键时触发的信号。
  • textChanged:文本内容改变时触发的信号。

在项目中我创建了下面连个信号和槽函数:

lineedit.textChanged.connect(
    lambda  row=row, col=channel_id_col, le=lineedit: self.point_id_edited(row, col,le))
lineedit.editingFinished.connect(
   lambda row=row,col=channel_id_col,le=lineedit:self.vir_channel_editing_finished(row, col,le))

但是self.point_id_edited槽函数中我使用传入的row 和col 时运行时报错:

 self.model.iloc[row, col] = self.tab_view.cellWidget(row, col).text()
                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: 'PySide6.QtWidgets.QTableWidget.cellWidget' called with wrong argument types:
  PySide6.QtWidgets.QTableWidget.cellWidget(str, int)
Supported signatures:
  PySide6.QtWidgets.QTableWidget.cellWidget(int, int)

原因分析:因为lineedit.textChanged 第一个lambda 传的参数数第一个默认时text,在槽函数中在使用row 或col 时已经不是int 而是 str。

做出如下改正:

lineedit.textChanged.connect(
    lambda text=text row=row, col=channel_id_col, le=lineedit: self.point_id_edited(text,row, col,le))
lineedit.editingFinished.connect(
   lambda row=row,col=channel_id_col,le=lineedit:self.vir_channel_editing_finished(row, col,le))
  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值