Как запустить метод окна PyQt MainWindow.load_url()
из основного процесса?
from multiprocessing import Process
import sys
from PyQt5 import QtWidgets
from PyQt5.QtWidgets import QMainWindow
from PyQt5.QtCore import *
from PyQt5.QtWebKitWidgets import *
class MainWindow(QMainWindow):
def __init__(self):
QMainWindow.__init__(self)
self.desktop_size = QtWidgets.QDesktopWidget().screenGeometry()
self.__browser = QWebView(self)
# todo
self.init_ui()
def init_ui(self):
self.__browser.resize(self.desktop_size.width(), self.desktop_size.height())
self.load_url('https://stackoverflow.com/')
self.showFullScreen()
def load_url(self, url: str):
self.__browser.load(QUrl(url))
def run_qt():
app = QtWidgets.QApplication(sys.argv)
x = MainWindow()
sys.exit(app.exec_())
class QtGui:
process = None
@staticmethod
def read_process():
if QtGui.process is None:
QtGui.process = Process(target=run_qt)
return QtGui.process
@staticmethod
def stop_process():
if QtGui.process is not None:
if QtGui.process.is_alive():
QtGui.process.terminate()
QtGui.process = None
@staticmethod
def start_process():
if QtGui.read_process().is_alive() is False:
QtGui.read_process().start()
if __name__ == '__main__':
qtGui = QtGui()
qtGui.start_process()
"""
how to run method MainWindow.load_url() from here
"""
Я попытался создать экземпляр QWebKit в основном процессе и передать его в качестве аргумента для доступа к это в двух процессах, но PyQt не принимает это, что я понимаю. К сожалению, я не знаю, как я могу это сделать. Спасибо