Jay*_*yes 5 qt python-3.x pyqt5 pyside2
当我首先运行 python-pyside2 项目服务器时,它运行良好。
而且该站点也运行良好,但是如果我按 F5 btn 在浏览器中刷新。
站点显示错误页面 Runtime at/

import sys
from urllib.request import urlopen
from bs4 import BeautifulSoup
from PySide2.QtGui import *
from PySide2.QtCore import *
from PySide2.QtWebKitWidgets import *
from PySide2.QtWidgets import QApplication
class dynamic_render(QWebPage):
def __init__(self, url):
self.frame = None
self.app = QApplication(sys.argv)
QWebPage.__init__(self)
self.loadFinished.connect(self._loadFinished)
self.mainFrame().load(QUrl(url))
QTimer.singleShot(0, self.sendKbdEvent)
QTimer.singleShot(100, app.quit)
self.app.exec_()
def _loadFinished(self, result):
self.frame = self.mainFrame()
self.app.quit()
self.app = None
Run Code Online (Sandbox Code Playgroud)
下面,使用 pyside2 转义代码:
我不知道我该如何解决?
此致。
谢谢。
小智 5
检查是否已经存在 QApplication 的实例,因为当实例已经在运行并且您正在尝试创建一个新实例时会发生错误。
在你的主函数中写下这个:
if not QtWidgets.QApplication.instance():
app = QtWidgets.QApplication(sys.argv)
else:
app = QtWidgets.QApplication.instance()
Run Code Online (Sandbox Code Playgroud)
小智 2
对于我的 pyside2 单元测试,以下效果相当好
import PySide2
import unittest
class Test_qapplication(unittest.TestCase):
def setUp(self):
super(Test_qapplication, self).setUp()
if isinstance(PySide2.QtGui.qApp, type(None)):
self.app = PySide2.QtWidgets.QApplication([])
else:
self.app = PySide2.QtGui.qApp
def tearDown(self):
del self.app
return super(Test_qapplication, self).tearDown()
Run Code Online (Sandbox Code Playgroud)
它松散地基于堆栈溢出:单元和功能测试a-pyside-based-application
| 归档时间: |
|
| 查看次数: |
5399 次 |
| 最近记录: |