pyqt5 QWebEngineView与js交互问题

发布于 2022-09-11 15:59:36 字数 435 浏览 6 评论 0

new QWebChannel(qt.webChannelTransport,
function(channel) {
    {
        window.my_object = channel.objects.my_object;
        alert(my_object.test.myHello()); // ———— 1
    }
});

以上代码使用python 插入 到页面中(html引入qwebchannel.js无法正确执行,不明白原因)后,1 中的代码可以正确输出

$("#get-info").on('click',
function() {
    alert(my_object); // ———— 2
});

2 中的代码却输出 undefined,请问这是为什么?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

写给空气的情书 2022-09-18 15:59:36

pyqt返回来的值必须写一个方法接收,如上面方法所示
js调用Python函数时,传递给python的参数默认为构造函数,如果想传递自定义参数,随便传,只是在参数列表的最后,一定要加上回调函数,自定义参数需要在python函数的形参列表中声明,回调函数则是默认的,不需要声明。对于上面错误,可以使用以下两种方式:

 pyjs.myHello(alert);

或者

pyjs.myHello(function (res) {
                    alert(res)
                })
淡淡の花香 2022-09-18 15:59:36

html引入qwebchannel.js无法正确执行,不明白原因

这个报什么错误, 能否细描述一下.

2 中的代码却输出 undefined

很可能是 "代码2" 较 "代码1" 先执行, 你可以通过浏览器的调试工具查看当前页面的对象.

深陷 2022-09-18 15:59:36

没有$对象?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文