evaluatejavascript不起作用_pyQt中的evaluateJavaScript - 函数未被调用

本文描述了在PyQt应用中使用Webview加载页面时,evaluateJavaScript调用JavaScript函数loadPinch绘制Highcharts图表遇到的问题。作者发现问题可能与页面加载顺序有关,通过连接loadFinished信号到一个槽函数,确保在页面加载完成后执行evaluateJavaScript,成功解决了图表不显示的问题。
摘要由CSDN通过智能技术生成

I have a problem with PyQt/its Webview. The code that is bothering me should render a chart, but it doesn't. I am using the Highcharts framework and provide the data for the javascript function that renders the chart via Python. I also check whether the webview is ready because that was a previous error of mine. The code in question looks something like this:

command = ('loadPinch(' + str(random.sample(range(10000), 1000)) +

', ' + str(['2009', '01', '01']) + ');')

self.webview.page().mainFrame().evaluateJavaScript("""

var readyStateCheckInterval = setInterval(function() {

if(document.readyState === 'complete'){ """ +

command + """

clearInterval(readyStateCheckInterval);

}

}, 10);&

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
evaluateJavaScript 是一个 QtWebEngine 函数,用于在 QWebEngineView 执行 JavaScript 代码。如果该函数在你的 PyQt 程序没有起作用,可能是以下几个原因: 1. 你没有正确实例化 QWebEngineView 对象。 2. 你没有正确设置 QWebEngineView 的页面加载完成后的信号。 3. 你没有正确调用 evaluateJavaScript 函数,可能是因为你没有传递正确的参数或者没有正确的调用函数。 以下是一个简单的使用 evaluateJavaScript 函数的示例代码: ```python from PyQt5.QtCore import QUrl from PyQt5.QtWidgets import QApplication from PyQt5.QtWebEngineWidgets import QWebEngineView app = QApplication([]) view = QWebEngineView() def on_load_finished(): view.page().runJavaScript("console.log('Hello World!');") view.load(QUrl("https://www.baidu.com")) view.loadFinished.connect(on_load_finished) view.show() app.exec_() ``` 在这个例子,我们首先实例化了一个 QWebEngineView 对象,并通过 load 函数加载了百度网站。然后我们设置了 loadFinished 信号,当页面加载完成后,会自动调用 on_load_finished 函数。在 on_load_finished 函数,我们调用了 runJavaScript 函数,传递了一个简单的 JavaScript 代码,用于在控制台输出 "Hello World!"。运行这个程序后,我们可以在程序的控制台看到输出 "Hello World!"。 注意:在使用 evaluateJavaScript 函数时,需要确保页面已经加载完成,否则可能会出现问题。可以通过设置 QWebEngineView 的 loadFinished 信号来确保页面加载完成后再执行 JavaScript 代码。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值