1

いくつかのシリアル インターフェイス関数を実装するために PySerial で動作する Python スクリプトの GUI を設計することで、ソースを読み取るいくつかのパラメーターを表示したいと考えています。たとえば、この 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 callable には接続できません。

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 に答える