PyQt5.QtWebEngineWidgetsQWebEnginePage()实现网页打开链接在新窗口中
发布时间:2024-01-05 21:30:09
PyQt5是一个Python的GUI编程工具包,其中包含了Qt的Python绑定模块,可以用来开发跨平台的图形用户界面应用程序。QtWebEngineWidgets模块是PyQt5中用于展示网页内容的模块,其中的QWebEnginePage类提供了一个网页浏览器框架,可以用来打开链接并在新窗口中展示。
下面是使用PyQt5.QtWebEngineWidgets.QWebEnginePage()打开链接在新窗口中的使用例子:
import sys
from PyQt5.QtCore import QUrl
from PyQt5.QtWidgets import QApplication
from PyQt5.QtWebEngineWidgets import QWebEngineView, QWebEnginePage
class WebPage(QWebEnginePage):
def createWindow(self, _type):
new_page = WebPage(self)
new_page.urlChanged.connect(self.on_urlChanged)
new_page.windowCloseRequested.connect(self.on_windowCloseRequested)
return new_page
def on_urlChanged(self, url):
print("New page opened:", url)
def on_windowCloseRequested(self):
self.deleteLater()
if __name__ == "__main__":
app = QApplication(sys.argv)
view = QWebEngineView()
page = WebPage()
view.setPage(page)
url = QUrl("https://www.example.com")
view.load(url)
view.show()
sys.exit(app.exec_())
在这个例子中,我们首先创建了一个继承自QWebEnginePage的自定义类WebPage。在这个类中,我们重写了createWindow方法,用于处理打开链接的事件。当打开一个链接时,会创建一个新的WebPage对象,并连接相关的信号槽。在on_urlChanged方法中,我们打印出新打开页面的URL。在on_windowCloseRequested方法中,我们处理窗口关闭事件,将WebPage对象删除。
然后,我们创建一个QApplication实例,创建一个QWebEngineView实例,并设置其页面为我们自定义的WebPage对象。我们通过QUrl类创建了一个链接对象,然后通过load方法加载这个链接。最后,调用show方法显示出来。
运行这个示例,打开的链接将会在新窗口中展示,并在控制台输出新打开页面的URL。当关闭新打开的页面时,会自动释放相关资源。
这就是使用PyQt5.QtWebEngineWidgets.QWebEnginePage()实现网页打开链接在新窗口中的示例。
