PyQt 连接中的参数

Parameter in PyQt connect

我看到的有关将 PyQt4 signals/slots 转换为 PyQt5 的示例非常简单,例如将按钮单击连接到更改标签。但是下面的语句应该如何转换:

self.connect(self.tableWidget,
    SIGNAL("itemChanged(QTableWidgetItem*)"),
    self.tableItemChanged)

让我困惑的是 itemChanged 的​​参数。我试过了,类比例子:

self.tableWidget.itemChanged(
    QTableWidgetItem*).connect(self.tableItemChanged)

谢谢!

当您建立 new syntax 连接时,无需指明信号发送的参数类型,除非在同一个 class 中存在同名信号,但在您的情况下它不是,所以以下是解决方案:

self.tableWidget.itemChanged.connect(self.tableItemChanged)

异常的典型例子是QComboBox:activated signal可以发送激活项的字符串或者激活项的索引,所以这里要指明我们要的数据类型.

combobox.activated[str].connect(self.handle_string)
combobox.activated[int].connect(self.handle_int)