gpt4 book ai didi

javascript - 使用 Python 在后台使用 Thread 运行 javascript

转载 作者:太空宇宙 更新时间:2023-11-03 21:31:09 24 4
gpt4 key购买 nike

我目前正在构建一个简单的文字编辑器,使用 PYQT5 作为主 GUI,使用 Node.js 作为文本区域,并做一些单词过滤的工作。这是我的 PYQT 部分的代码:

import threading

from PyQt5 import QtCore, QtGui, QtWidgets
from Naked.toolshed.shell import execute_js, muterun_js

class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(1090, 780)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.gridLayout = QtWidgets.QGridLayout(self.centralwidget)
self.gridLayout.setObjectName("gridLayout")
self.webView = QtWebEngineWidgets.QWebEngineView(self.centralwidget)
self.webView.setUrl(QtCore.QUrl("http://127.0.0.1:3000/"))
self.webView.setObjectName("webView")
self.gridLayout.addWidget(self.webView, 0, 0, 1, 1)
MainWindow.setCentralWidget(self.centralwidget)

self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)

def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))

from PyQt5 import QtWebEngineWidgets


def loadJS():
#try to use threading here to run it in background but still no effects

js = threading.Thread(target=execute_js("../Editor/Engine/index.js"))
js.daemon=True
js.start()



def loadGUI():
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())



if __name__ == "__main__":
import sys
loadJS()
loadGUI()

我的预期结果是使用 PYQT5 中的 WebView 加载我的本地主机,这样我就可以得到这样的结果:

预期输出

我的 Node.js 脚本运行良好并完成了所有工作,但无法运行我的主 GUI。据我了解,运行时,系统等待 loadJS() 完成其工作,然后调用 loadGUI()。所以我尝试使用线程将 loadJS() 放入后台并保持其运行,而 loadGUI() 在前面。不过,似乎并没有什么效果。我不确定我是否错误地使用了线程或误解了它的目的。任何帮助表示赞赏。

最佳答案

在您的初始代码中,您直接在主线程中的函数中调用,而必须将其作为目标传递给函数名称,并在 args 中将参数作为元组传递给参数。

js = threading.Thread(target=execute_js, args=("../Editor/Engine/index.js",))
js.daemon=True
js.start()

关于javascript - 使用 Python 在后台使用 Thread 运行 javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53510734/

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