PyQt5 |
您所在的位置:网站首页 › pyside2下载慢 › PyQt5 |
PyQt5|PySide2 程序内嵌web浏览器的方法 内嵌web浏览器有时候,我们需要在程序中嵌入浏览器,显示一个指定的网页。 Qt5中,有一个 QtWebEngineWidgets 模块,通过它,可以启动基于Chromium的浏览器(和chrome是同样的内核)进程,并且把web界面内嵌入 Qt程序中。 参考官网说明 案例我们可以实现一个内嵌浏览器,打开白月黑羽网站。 整个案例的参考代码,点击这里下载 链接:https://pan.baidu.com/s/1FBLdSU0w_LYSsPUzVjsQsA 提取码:byhy 首先使用Qt designer设计界面。 注意:显示web内容的是 QtWebEngineWidgets 模块里面的 QWebEngineView类。 所以需要 premote 一个QtWindget 控件为 QWebEngineView。详见参考代码中的ui文件。 创建完界面后,使用命令 pyside2-uic main.ui > ui_main.py把界面定义转化为Python代码。 然后,编写如下代码,使用 QWebEngineView 打开网址 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.baidu.com/') app = QApplication([]) mainw = MainWindow() mainw.show() app.exec_()上述代码的一个问题,就是不能打开新标签页,如果要支持,可以使用QTabWidget。参考代码如下 from PySide2.QtCore import * from PySide2.QtWidgets import * from PySide2.QtWebEngineWidgets import * class TabWidget(QTabWidget): def __init__(self, *args, **kwargs): QTabWidget.__init__(self, *args, **kwargs) url = QUrl("https://www.163.com") view = HtmlView(self) view.load(url) ix = self.addTab(view, "加载中 ...") self.resize(800, 600) class HtmlView(QWebEngineView): def __init__(self, *args, **kwargs): QWebEngineView.__init__(self, *args, **kwargs) self.tab = self.parent() def createWindow(self, windowType): if windowType == QWebEnginePage.WebBrowserTab: webView = HtmlView(self.tab) ix = self.tab.addTab(webView, "加载中 ...") self.tab.setCurrentIndex(ix) return webView return QWebEngineView.createWindow(self, windowType) if __name__ == "__main__": import sys app = QApplication(sys.argv) main = TabWidget() main.show() sys.exit(app.exec_()) |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |