带QtWebChann的叶弹出窗口

2024-10-03 09:16:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在显示一个对开本生成的HTML(用于传单.js)在QtWebEngineView中。在弹出窗口中,我有一个按钮,它有一个点击函数,用来调用python中的方法。但我似乎无法让频道正常工作。我不确定我是不是做错了QtWebChannel或JS,或者是folium?在

我将以下javascript注入到QWebChannel.js,它在<body>的末尾加载

    var jshelper;
    new QWebChannel(qt.webChannelTransport, function (channel) {
        jshelper = channel.objects.jshelper;
    });

    document.getElementById("myBtn").addEventListener("click", function(){
        jshelper.pathSelected("Test!")
    });

这是我的Python代码

^{pr2}$

如果你能帮我解决这个问题,我会很感激的

让我知道我是否应该发布为弹出窗口或传单.js美国石油学会


Tags: 方法函数htmljschannelfunction频道按钮
1条回答
网友
1楼 · 发布于 2024-10-03 09:16:12

qwebchannel.js必须先将其放入,然后将其注入弹出窗口并在page()中注册它。在

为此,我们创建一个Figure(),并在标题中添加qwebchannel.js在

principal = Figure()
js = JavascriptLink(QUrl.fromLocalFile(self.htmlPath.absoluteFilePath("qwebchannel.js")).toString())
principal.header.add_child(Element(js.render()))

注意:在qwebchannel中,由于按钮不存在而无法与该按钮建立连接。在

为此,向弹出窗口传递一个新的javascript,它将调用弹出式菜单.js,在这里我将通过jshelper的父窗口(主窗口)访问jshelper。在

弹出式菜单.js

^{pr2}$

.py

f = Figure()
f.html.add_child(Element('<button id="myBtn">Try it</button>'))
f.html.add_child(Element('<p>\n TEST \n</p>'))

link = JavascriptLink(QUrl.fromLocalFile(self.htmlPath.absoluteFilePath("popup.js")).toString())
f.html.add_child(Element(link.render()))

您可以在下面的link中找到完整的示例。在

相关问题 更多 >