1

通过为我的 python 脚本设计一个 GUI,它与 PySerial 一起用于实现一些串行接口功能,我希望显示一些读取源的参数。因此,此 GUI 例如必须显示由参数 volt_act 表示的实际电压。我认为我可以使用以下代码连接 QLCDNumber lcdVoltage:

self.connect(self, QtCore.SIGNAL("selfVoltage"), self.lcdVoltage, QtCore.SLOT("display(int)"))

在我想读取电压时,我发出参数:

self.emit(QtCore.SIGNAL("selfVoltage"), volt_act)

但这不起作用。如何正确实现 QLCDNumber,其中在发出参数时会实时更新它?

4

1 回答 1

2

来自文档

短路信号没有参数列表或周围的括号。

短路信号只能连接到已在 Python 中实现的插槽。它们不能连接到 Qt 插槽或包装 Qt 插槽的 Python 可调用对象。

如果您打算使用 Qt 插槽,则需要显式声明变量类型:

self.connect(self, QtCore.SIGNAL("selfVoltage(int)"), self.lcdVoltage, QtCore.SLOT("display(int)"))

self.emit(QtCore.SIGNAL("selfVoltage(int)"), volt_act)

但是,我真的建议你使用新风格的信号

首先,您将信号定义为类变量:

voltage = QtCore.pyqtSignal(int)

然后连接它:

self.voltage.connect(self.lcdVoltage.display)

最后,你会发出:

self.voltage.emit(volt_act)
于 2013-02-14T10:18:38.477 回答