如何用PyQt实现QLCDNumbers?

时间:2013-02-14 10:03:51

标签: python pyqt

通过设计我的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?

1 个答案:

答案 0 :(得分:2)

来自docs

  

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

     

短路信号只能连接到已有的插槽   用Python实现。它们无法连接到Qt插槽或   包含Qt插槽的Python callables。

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

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

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

但是,我真的建议你使用new style signals

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

voltage = QtCore.pyqtSignal(int)

然后连接它:

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

最后,你会发出:

self.voltage.emit(volt_act)