1

PyQt アプリケーションを JS と通信させようとしていますが、Python から値を取得できません。データを取得して印刷するために、Python 側に 2 つのスロットがあります。この例では、int が JS から python に渡され、python がそれに 5 を追加して戻し、JS が他のスロットを呼び出して新しい値を出力します。

var backend = null;
var x = 15;
new QWebChannel(qt.webChannelTransport, function (channel) {
    backend = channel.objects.backend;
    backend.getRef(x, function(pyval){
        backend.printRef(pyval)
    });
});
@pyqtSlot(int)
def getRef(self, x):
    print('inside getRef', x)
    return x + 5

@pyqtSlot(int)
def printRef(self, ref):
    print('inside printRef', ref)

出力:

inside getRef 15
Could not convert argument QJsonValue(null) to target type int .

期待される:

inside getRef 15
inside printRef 20

戻り値が null になる理由がわかりません。そのpyvalをjs側の変数に保存して後で使用するにはどうすればよいですか?

4

1 に答える 1