PYQT5中QWebEngineView与JS交互时的数据类型问题?

channel.registerObject("sharer", main_window.sharer)

main_window.sharer 对象有一个名为 attrs 的 pyqtproperty,数据类型为列表,初始值为 [1, 2, 3]

在 JS 端,访问 sharer.attrs,得到 [1, 2, 3] 没有问题

在 JS 端设置 sharer.attrs = new Array(8, 9),但在 QT 端访问 main_window.sharer.attrs 得到的却是 [8.0, 9.0],这个反序列化是怎么回事,如何才能让它保持整数的类型?

而通过下面的方式却可以得到正确的类型:

self.browser.page().runJavaScript("sharer.attrs", lambda e: print(e, self.sharer.attrs))

out: [9, 8] [9.0, 8.0]

谁能帮忙解释一下吗?

阅读 958
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题