pythonGUI库图形界面开发之PyQt5浏览器控件QWebEngineView详细使用方法_第1页
pythonGUI库图形界面开发之PyQt5浏览器控件QWebEngineView详细使用方法_第2页
pythonGUI库图形界面开发之PyQt5浏览器控件QWebEngineView详细使用方法_第3页
pythonGUI库图形界面开发之PyQt5浏览器控件QWebEngineView详细使用方法_第4页
pythonGUI库图形界面开发之PyQt5浏览器控件QWebEngineView详细使用方法_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

pythonGUI库图形界⾯开发之PyQt5浏览器控件QWebEngineView详细使⽤⽅法PyQt5浏览器控件QWebEngineViewPyQt5使⽤QWebEngineView控件来展⽰HTML页⾯,对⽼版本的QWebView类不在进⾏维护,因为QWebEngineView使⽤CHromium内核可以给⽤户带来更好的体验QWebEngineView类中常⽤⽅法⽅法描述load(QUrlurl)加载指定的URL并显⽰setHtml(QString&html)将⽹页视图的内容设置为指定的HTML内容QWebEngineView控件使⽤load()函数加载⼀个Web页⾯,实际上就是使⽤HTTPGet⽅法加载web页⾯,这个控件可以加载本地的web页⾯,也可以加载外部的WEb页⾯,其核⼼代码如下view=QWebEngineView()view.load(QUrl(''))view.show()QWebEngineView加载显⽰外部的web页⾯实例importsysfromPyQt5.QtCoreimport*fromPyQt5.QtGuiimport*fromPyQt5.QtWidgetsimport*fromPyQt5.QtWebEngineWidgetsimport*classMainWindow(QMainWindow):def__init__(self):super(MainWindow,self).__init__()self.setWindowTitle('加载外部⽹页的例⼦')self.setGeometry(5,30,1355,730)self.browser=QWebEngineView()#加载外部的web界⾯self.browser.load(QUrl(''))self.setCentralWidget(self.browser)if__name__=='__main__':app=QApplication(sys.argv)win=MainWindow()win.show()app.exit(app.exec_())运⾏效果图如下在这⾥,我输⼊的url是我的博客地址,所以加载的也就是这个⽹址请求的web界⾯QWebEngineView加载并显⽰嵌⼊的HTML代码importsysfromPyQt5.QtCoreimport*fromPyQt5.QtGuiimport*fromPyQt5.QtWidgetsimport*fromPyQt5.QtWebEngineWidgetsimport*classMainWindow(QMainWindow):def__init__(self):super(MainWindow,self).__init__()self.setWindowTitle('加载本地⽹页的例⼦')self.setGeometry(5,30,1355,730)self.browser=QWebEngineView()##加载外部的web界⾯#url=r'index.html'#self.browser.load(QUrl(url))self.browser.setHtml('''<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>Title</title></head><body><h1>HelloPyQt5</h1><h1>HelloPyQt5</h1><h1>HelloPyQt5</h1><h1>HelloPyQt5</h1><h1>HelloPyQt5</h1></body></html>''')self.setCentralWidget(self.browser)if__name__=='__main__':app=QApplication(sys.argv)win=MainWindow()win.show()app.exit(app.exec_())运⾏图⽚如下注意使⽤QWebEngineView对象的setHTML()函数渲染HTml页⾯时,如果页⾯中使⽤的JavaScript代码超过2M,程序渲染就会失败QWebEngineView调⽤JavaScript代码实例通过QWebEnginePage类的runJavaScript(str,Callable)函数可以⽅便地实现PyQt和HTML、JavaScript的双向通信,也实现了python代码和Html,JavaScript代码的解耦,便于开发⼈员进⾏分⼯协作,在PyQt对象中,访问JavaScript的核⼼代码如下QWebEnginePage.runJavaScript(str,Callable)完整代码importsysfromPyQt5.QtWebEngineWidgetsimportQWebEngineViewfromPyQt5.QtWidgetsimportQApplication,QWidget,QVBoxLayout,QPushButton#创建⼀个application实例app=QApplication(sys.argv)win=QWidget()win.setWindowTitle('Web页⾯中的JavaScript与QWebEngineView交互例⼦')#创建⼀个垂直布局器layout=QVBoxLayout()win.setLayout(layout)#创建⼀个QWebEngineView对象view=QWebEngineView()view.setHtml('''<html><head><title>ADemoPage</title><scriptlanguage="javascript">//Completesthefull-namecontroland//showsthesubmitbuttonfunctioncompleteAndReturnName(){varfname=document.getElementById('fname').value;varlname=document.getElementById('lname').value;varfull=fname+''+lname;document.getElementById('fullname').value=full;document.getElementById('submit-btn').style.display='block';returnfull;}</script></head><body><form><labelfor="fname">Firstname:</label><inputtype="text"name="fname"id="fname"></input><br/><labelfor="lname">Lastname:</label><inputtype="text"name="lname"id="lname"></input><br/><labelfor="fullname">Fullname:</label><inputdisabledtype="text"name="fullname"id="fullname"></input><br/><inputstyle="display:none;"type="submit"id="submit-btn"></input></form></body></html>''')#创建⼀个按钮去调⽤JavaScript代码button=QPushButton('设置全名')defjs_callback(result):print(result)defcomplete_name():view.page().runJavaScript('completeAndReturnName();',js_callback)#按钮连接'complete_name'槽,当点击按钮是会触发信号button.clicked.connect(complete_name)#把QWebView和button加载到layout布局中layout.addWidget(view)layout.addWidget(button)#显⽰窗⼝和运⾏appwin.show()sys.exit(app.exec_())代码分析在本例中,初始化⼀个QWebEngineView对象,对象名称View,然后通过View。page()函数获得⼀个QWebEnginePage对象,就可以访问整个web界⾯了。这个QWebEnginePage对象有⼀个异步的runJavaScript()函数,需要⼀个回调函数接收结果,其核⼼代码如下defjs_callback(result):print(result

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论