В настоящее время я работаю над созданием простого текстового редактора, использующего PYQT5 в качестве основного графического интерфейса и использующего 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()
Мой ожидаемый результат - использование WebView в PYQT5 для загрузки моего локального хоста, чтобы я мог получить что-то вроде этого:
Ожидаемый результат
![](https://i.stack.imgur.com/1mA3k.png)
Мой скрипт Node.js прекрасно работает и выполняет всю свою работу, но нет способа запустить мой основной графический интерфейс.Насколько я понимаю, при запуске система ждет, пока loadJS () завершит свою работу, а затем вызовет loadGUI ().Поэтому я попытался использовать Threading, чтобы поместить loadJS () в фоновый режим и поддерживать его, пока loadGUI () находится впереди.Тем не менее, похоже, что никаких последствий.Я не уверен, что использую Threading неправильно или неправильно понимаю его назначение.Любая помощь приветствуется.