from PySide2.QtWidgets import QApplication,QMainWindow from ui_main import Ui_MainWindow class MainWindow(QMainWindow): def __init__(self): super().__init__() # 使用ui文件导入定义界面类 self.ui = Ui_MainWindow() # 初始化界面 self.ui.setupUi(self) # 使用界面定义的控件,也是从ui里面访问 self.ui.webview.load('http://www.python3.vip/') app = QApplication([]) mainw = MainWindow() mainw.show() app.exec_(),将链接更改为selenium加载
时间: 2024-03-14 10:49:17 浏览: 17
可以将最后一行代码更改为以下内容,使用selenium加载网页:
```
self.ui.webview.load(QUrl('about:blank'))
self.ui.webview.page().setViewportSize(self.ui.webview.size())
self.ui.webview.load(QUrl('http://www.python3.vip/'))
```
请注意需要导入 `QUrl`,即在开头加上 `from PySide2.QtCore import QUrl`。另外,还需要安装 `selenium` 库。
相关问题
from PySide2.QtWidgets import QApplication,QMainWindow from ui_main import Ui_MainWindow from PySide2.QtCore import QUrl class MainWindow(QMainWindow): def __init__(self): super().__init__() # 使用ui文件导入定义界面类 self.ui = Ui_MainWindow() # 初始化界面 self.ui.setupUi(self) # 使用界面定义的控件,也是从ui里面访问 self.ui.webview.load(QUrl('about:blank')) self.ui.webview.page().setViewportSize(self.ui.webview.size()) self.ui.webview.load(QUrl('http://www.python3.vip/')) app = QApplication([]) mainw = MainWindow() mainw.show() app.exec_(),上述代码提示错误AttributeError: 'PySide2.QtWebEngineWidgets.QWebEnginePage' object has no attribute 'setViewportSize'
抱歉,我犯了一个错误。在使用 `PySide2.QtWebEngineWidgets.QWebEnginePage` 的 `setViewportSize()` 方法之前需要先获得一个 `QWebEngineView` 对象的页面,因为 `setViewportSize()` 是 `QWebEngineView` 的方法。可以将代码更改为以下内容:
```
from PySide2.QtWidgets import QApplication,QMainWindow from ui_main import Ui_MainWindow from PySide2.QtCore import QUrl class MainWindow(QMainWindow): def __init__(self): super().__init__() # 使用ui文件导入定义界面类 self.ui = Ui_MainWindow() # 初始化界面 self.ui.setupUi(self) # 使用界面定义的控件,也是从ui里面访问 self.ui.webview.load(QUrl('about:blank')) # 获取页面对象 page = self.ui.webview.page() # 设置页面大小 page.setViewportSize(self.ui.webview.size()) self.ui.webview.load(QUrl('http://www.python3.vip/')) app = QApplication([]) mainw = MainWindow() mainw.show() app.exec_()
```
请注意,这里使用了 `self.ui.webview.page()` 方法获取页面对象,然后再调用 `setViewportSize()` 方法设置页面大小。我希望这次能够解决问题。
from PySide2.QtWidgets import QApplication, QMainWindow, QWebEngineView from selenium import webdriver import time class MainWindow(QMainWindow): def __init__(self): super().__init__() self.setWindowTitle('My Browser') self.web_view = QWebEngineView() self.setCentralWidget(self.web_view) # 创建Selenium浏览器对象 driver = webdriver.Chrome() # 打开网页 driver.get('https://www.example.com') # 加载网页内容到QWebEngineView控件中 html = driver.page_source self.web_view.setHtml(html) # 等待一段时间,使页面加载完成 time.sleep(5) # 关闭Selenium浏览器对象 driver.quit() if __name__ == '__main__': app = QApplication([]) window = MainWindow() window.show() app.exec_,上述代码提示错误ImportError: cannot import name 'QWebEngineView' from 'PySide2.QtWidgets' (D:\PycharmProjects3.7\gongdan\venv\lib\site-packages\PySide2\QtWidgets.pyd)
这个错误可能是因为 PySide2 版本太老,或者没有安装 PySide2 的 WebEngine 模块。你可以尝试更新 PySide2,或者安装 PySide2 的 WebEngine 模块,方法如下:
1. 更新 PySide2:在命令行中输入 `pip install --upgrade PySide2`,等待更新完成后再运行程序。
2. 安装 PySide2 的 WebEngine 模块:在命令行中输入 `pip install PySide2[WebEngine]`,等待安装完成后再运行程序。
如果以上方法依然无法解决问题,你可以尝试安装 PyQt5,并将程序中的 `PySide2.QtWidgets` 替换为 `PyQt5.QtWidgets`,将 `QWebEngineView` 替换为 `QWebEngineView`。