先直接给出代码:如下
import sys
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
from PyQt5.QtWebEngineWidgets import *
class MainWindow(QMainWindow):
def __init__(self):
super(MainWindow, self).__init__()
self.setWindowTitle('标题') #窗口标题
self.setGeometry(5,30,1400,750) #窗口的大小和位置设置
self.browser=QWebEngineView()
#加载外部的web界面
self.browser.load(QUrl('https://www.baidu.com/'))
self.setCentralWidget(self.browser)
if __name__ == '__main__':
app=QApplication(sys.argv)
win=MainWindow()
win.show()
app.exit(app.exec_())
下面是代码的详细解释:
-
导入必要的模块:
sys
:提供访问系统相关功能的模块。
-
导入PyQt5库中的相关类:
QMainWindow
:是一个主窗口类,用于创建应用程序的主窗口。QApplication
:是用于管理应用程序的类。QWebEngineView
:是用于显示Web内容的小部件类。QUrl
:是用于处理URL的类。
-
创建一个名为
MainWindow
的自定义类,继承自QMainWindow
:- 在
__init__
方法中,调用QMainWindow
类的构造函数来初始化窗口。 - 设置窗口标题为'标题'。
- 设置窗口的位置和大小。
- 创建一个
QWebEngineView
实例作为浏览器部件。 - 加载外部的Web界面,URL为'https://www.baidu.com/'。
- 将浏览器部件设置为窗口的中心部件。
- 在
-
在
if __name__ == '__main__':
语句块中:- 创建一个
QApplication
实例,用于管理应用程序。 - 创建一个
MainWindow
实例,表示应用程序的主窗口。 - 调用
show()
方法显示主窗口。 - 调用
app.exec_()
启动应用程序的事件循环,使程序进入运行状态。 - 最后,调用
app.exit()
退出应用程序,传递app.exec_()
的返回值作为参数。
- 创建一个
这段代码创建了一个基本的网页浏览器窗口,打开并显示了指定的URL内容。可以根据需要修改窗口的标题、位置和大小,以及加载的网页URL。
接下来是扩展——————————————————————
下面是一些扩展的示例:
-
添加菜单栏
-
在
MainWindow
类的构造函数中添加以下代码:menu_bar = self.menuBar() # 创建一个菜单栏 file_menu = menu_bar.addMenu("File") # 添加一个"File"菜单 file_menu.addAction("New Window") # 添加一个"New Window"菜单项 view_menu = menu_bar.addMenu("View") # 添加一个"View"菜单 view_menu.addAction("Zoom In") # 添加一个"Zoom In"菜单项 view_menu.addAction("Zoom Out") # 添加一个"Zoom Out"菜单项
-
这样做将在应用程序的主窗口上添加一个菜单栏,并在菜单栏上添加了"File"和"View"两个菜单。
-
这些扩展示例可以为你的网页浏览器应用程序添加一些基本的功能和用户界面元素。你还可以根据需要进一步扩展和定制应用程序。
-
-
添加地址栏和导航按钮:
在 MainWindow
类的构造函数中添加以下代码:
-
self.url_bar = QLineEdit() # 创建一个地址栏部件 self.url_bar.returnPressed.connect(self.navigate) # 将地址栏的回车事件连接到 navigate 方法 self.browser.urlChanged.connect(self.update_url_bar) # 将浏览器的 URL 变化事件连接到 update_url_bar 方法 navigation_toolbar = QToolBar() # 创建一个工具栏 self.addToolBar(navigation_toolbar) # 将工具栏添加到主窗口 navigation_toolbar.addAction("Back", self.browser.back) # 添加返回按钮,点击时调用浏览器的 back 方法 navigation_toolbar.addAction("Forward", self.browser.forward) # 添加前进按钮,点击时调用浏览器的 forward 方法 navigation_toolbar.addWidget(self.url_bar) # 将地址栏部件添加到工具栏 navigation_toolbar.addAction("Go", self.navigate) # 添加前往按钮,点击时调用 navigate 方法
2.添加以下两个方法到 MainWindow
类中:
def navigate(self):
url = QUrl(self.url_bar.text()) # 获取地址栏中的 URL
self.browser.load(url) # 加载 URL
def update_url_bar(self, q):
self.url_bar.setText(q.toString()) # 更新地址栏显示的 URL
这样做将在应用程序的主窗口上添加一个地址栏和导航按钮。可以在地址栏中输入网址并按回车键或点击"Go"按钮来导航到指定网页
-
最后给出扩展后的完整代码
-
import sys from PyQt5.QtCore import * from PyQt5.QtWidgets import * from PyQt5.QtWebEngineWidgets import * class MainWindow(QMainWindow): def __init__(self): super(MainWindow, self).__init__() self.setWindowTitle('图标') self.setGeometry(5, 30, 1400, 750) self.browser = QWebEngineView() self.browser.load(QUrl('https://www.baidu.com/')) self.setCentralWidget(self.browser) self.url_bar = QLineEdit() self.url_bar.returnPressed.connect(self.navigate) self.browser.urlChanged.connect(self.update_url_bar) navigation_toolbar = QToolBar() self.addToolBar(navigation_toolbar) navigation_toolbar.addAction("Back", self.browser.back) navigation_toolbar.addAction("Forward", self.browser.forward) navigation_toolbar.addWidget(self.url_bar) navigation_toolbar.addAction("Go", self.navigate) menu_bar = self.menuBar() file_menu = menu_bar.addMenu("File") file_menu.addAction("New Window") view_menu = menu_bar.addMenu("View") view_menu.addAction("Zoom In") view_menu.addAction("Zoom Out") def navigate(self): url = QUrl(self.url_bar.text()) self.browser.load(url) def update_url_bar(self, q): self.url_bar.setText(q.toString()) if __name__ == '__main__': app = QApplication(sys.argv) win = MainWindow() win.show() sys.exit(app.exec_())
最后谢谢大家的喜欢