gpt4 book ai didi

javascript - 如何从应用程序向 PyQtWebkitView javascript 发出信号?

转载 作者:行者123 更新时间:2023-11-30 17:37:47 25 4
gpt4 key购买 nike

我希望从我的主窗口内部向我的 WebView 发出信号。

这将包含 javascript 以接收事件、加载并在其中插入一些 html 内容。

我找到了这个文档 http://developer.nokia.com/community/wiki/Connecting_to_a_QObjects_signal_with_JavaScript_slot_in_Qt_WebKit其中解释了如何插入 Javascript 部分。但我不明白它在何处以及如何连接到应用程序,因此我不明白我该怎么做。

我没有发布任何代码,因为整体环境非常复杂,我只是想从 webview 开始一个带有 '<|input type='button'>' 的任务,结果太长无法计算并立即显示。

我想放置一些加载内容等待接收实际内容然后弹出。

最佳答案

这是一个非常好的问题,我有一段时间被它卡住了!我将向您展示两种通信方式的示例:从 python 到 javascript,反之亦然,希望对您有所帮助:

import PyQt4.QtGui as gui, PyQt4.QtWebKit as web, PyQt4.QtCore as core

class MyMainWindow(gui.QMainWindow):

proccessFinished = core.pyqtSignal()

def __init__(self, parent=None):
super(MyMainWindow,self).__init__()

self.wv = web.QWebView()
self.setCentralWidget(self.wv)

#pass this main window to javascrip
self.wv.page().mainFrame().addToJavaScriptWindowObject("mw", self)

self.wv.setHtml("""
<html>
<head>
<script language="JavaScript">
function p() {
document.write('Process Finished')
}
mw.proccessFinished.connect(p)
</script>
</head>
<body>
<h1>It works</h1>
<input type=button value=click onClick=mw.doIt()></input>
</body>
</html>
""")

@core.pyqtSlot()
def doIt(self):
print('running a long process...')
print('of course it should be on a thread...')
print('and the signal should be emmited from there...')
self.proccessFinished.emit()


app = gui.QApplication([])

mw = MyMainWindow()
mw.show()

app.exec_()

关于javascript - 如何从应用程序向 PyQtWebkitView javascript 发出信号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21698424/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com