我只是学习PyQt并查看信号和插槽机制。我对冗长的语法感到困惑。为什么我们有:
self.connect(dial, SIGNAL("valueChanged(int)"), spinbox.setValue)
我更愿意写下以下内容:
self.connect(dial.valueChanged, spinbox.setValue)
有谁能告诉我为什么connect()语法需要如此明确/详细?
答案 0 :(得分:28)
你可以使用更简洁的PyQt的new style signals:
self.connect(dial, SIGNAL("valueChanged(int)"), spinbox.setValue)
变为:
dial.valueChanged.connect(spinbox.setValue)
答案 1 :(得分:2)
答案 2 :(得分:1)
更简单的方法是在构造函数的关键字参数中为函数指定信号名称,例如: QDial(valueChanged=spinbox.setValue)
。 PyQt会自动将valueChanged()
信号连接到spinbox.setValue()
。