【移动应用开发技术】怎么用Python PyQt5模块实现一个浏览器_第1页
【移动应用开发技术】怎么用Python PyQt5模块实现一个浏览器_第2页
【移动应用开发技术】怎么用Python PyQt5模块实现一个浏览器_第3页
【移动应用开发技术】怎么用Python PyQt5模块实现一个浏览器_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

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

文档简介

【移动应用开发技术】怎么用PythonPyQt5模块实现一个浏览器

这篇“怎么用PythonPyQt5模块实现一个浏览器”文章的知识点大部分人都不太理解,所以在下给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么用PythonPyQt5模块实现一个浏览器”文章吧。pip3installPyQt5

(没有指定版本的话,默认会安装最新的)pip3installsippip3installPyQtWebEngine(PyQtWebEngine是QtWebEngine的一组框架,该框架提供了在应用程序中嵌入Web内容的能力,并且基于Chrome浏览器。)from

PyQt5.QtCore

import

*

from

PyQt5.QtWidgets

import

*

from

PyQt5.QtGui

import

*

from

PyQt5.QtWebEngineWidgets

import

*

import

os

import

sys

class

MainWindow(QMainWindow):

def

__init__(self,

*args,

**kwargs):

super().__init__(*args,

**kwargs)

self.resize(2000,

1314)

self.show()

self.tabWidget

=

QTabWidget()

self.tabWidget.setTabShape(QTabWidget.Triangular)

self.tabWidget.setDocumentMode(True)

self.tabWidget.setMovable(True)

self.tabWidget.setTabsClosable(True)

self.tabWidget.tabCloseRequested.connect(self.close_Tab)

self.setCentralWidget(self.tabWidget)

self.webview

=

WebEngineView(self)

self.webview.load(QUrl(""))

self.create_tab(self.webview)

navtb

=

QToolBar("Navigation")

navtb.setIconSize(QSize(16,

16))

self.addToolBar(navtb)

back_btn

=

QAction(QIcon(os.path.join("images",

"houtui.png")),

"后退",

self)

back_btn.triggered.connect(self.webview.back)

navtb.addAction(back_btn)

next_btn

=

QAction(QIcon(os.path.join("images",

"qianjin.png")),

"前进",

self)

next_btn.triggered.connect(self.webview.forward)

navtb.addAction(next_btn)

reload_btn

=

QAction(QIcon(os.path.join("images",

"refresh_icon.png")),

"刷新",

self)

reload_btn.triggered.connect(self.webview.reload)

navtb.addAction(reload_btn)

home_btn

=

QAction(QIcon(os.path.join("images",

"geren1.png")),

"主页",

self)

navtb.addAction(home_btn)

self.urlbar

=

QLineEdit()

stop_btn

=

QAction(QIcon(os.path.join("images",

"cross-circle.png")),

"Stop",

self)

stop_btn.triggered.connect(lambda:

self.tabs.currentWidget().stop())

navtb.addAction(stop_btn)

self.urlbar.returnPressed.connect(self.navigate_to_url)

navtb.addSeparator()

navtb.addWidget(self.urlbar)

self.webview.urlChanged.connect(self.renew_urlbar)

def

navigate_to_url(self):

q

=

QUrl(self.urlbar.text())

if

q.scheme()

==

"":

q.setScheme("http")

self.webview.setUrl(q)

def

renew_urlbar(self,

q):

self.urlbar.setText(q.toString())

self.urlbar.setCursorPosition(0)

def

create_tab(self,

webview):

self.tab

=

QWidget()

self.tabWidget.addTab(self.tab,

"新建标签页")

self.tabWidget.setCurrentWidget(self.tab)

self.Layout

=

QHBoxLayout(self.tab)

self.Layout.setContentsMargins(0,

0,

0,

0)

self.Layout.addWidget(webview)

def

close_Tab(self,

index):

if

self.tabWidget.count()

>

1:

self.tabWidget.removeTab(index)

else:

self.close()

class

WebEngineView(QWebEngineView):

def

__init__(self,

mainwindow,

parent=None):

super(WebEngineView,

self).__init__(parent)

self.mainwindow

=

mainwindow

def

createWindow(self,

QWebEnginePage_WebWindowType):

new_webview

=

WebEngineView(self.mainwindow)

self.mainwindow.create_tab(new_webv

温馨提示

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

评论

0/150

提交评论