QApplication可在PYQT4的任何时间创建新线程

2024-09-24 00:21:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试了几次渲染页面,但不幸的是QApplication每次都会创建一个新线程,当我第二次尝试运行渲染时,它会说: QApplication was not created in the main() thread.此外,我得到了以下{} 我只尝试创建Qapplication对象一次,但render方法的触发器是从socketIO模块接收的事件。 在渲染第一次工作时。第二次渲染时,整个应用程序崩溃

这是一个截取的代码:

def __init__(self, table_name=None, db_type=None, *args,
                 **kwargs):
        self.app = QApplication(sys.argv)
        self.app.setApplicationName(QString("Chrome"))
        self.app.setApplicationVersion(QString("53.0.2785.113"))
        super(MainWindow, self).__init__(*args, **kwargs)
        self.setWindowTitle("ScarpSite")
        self.browser = QWebView()
        self.networkAccessManager = QNetworkAccessManager()
        self.cookieJar = QNetworkCookieJar()
        self.__VulnCrud = VulnerabilitiesCRUD
        self.__tableName = table_name
        self.get_configuration_properties()

def ScanPage(self, pageEntity=None, forms=None, links=None, vulnUtils=None):
        self.forms = forms
        self.links = links
        self.vulnUtils = vulnUtils
        self.updateCookiesMechanizetoQt(self.vulnUtils.getCookieJar())
        self.url = pageEntity.getURL()
        self.domain = urlparse(self.url).hostname
        self.browser.loadFinished.connect(self.__onUrlLoaded)
        self.browser.page().setNetworkAccessManager(self.networkAccessManager)
        self.browser.page().userAgentForUrl(QUrl(self.url))
        curURL = QUrl(self.url)
        self.browser.load(curURL)
        self.setCentralWidget(self.browser)
        self.show()
        self.app.exec_()

有什么办法可以解决吗


Tags: nameselfbrowsernoneappurlinitdef