📅  最后修改于: 2023-12-03 15:24:19.334000             🧑  作者: Mango
有时候在 PyQt5 中需要打开一个超链接,在浏览器中打开链接是一个不错的选择,但是如何在 PyQt5 中使用 target="_blank" 打开超链接呢?
下面将介绍如何使用 PyQt5 在浏览器中打开超链接。
在使用 PyQt5 中打开超链接之前,需要先导入 PyQt5 和 QWebEngineView 模块。下面是导入的代码片段:
from PyQt5.QtWebEngineWidgets import QWebEngineView
from PyQt5.QtCore import QUrl
下面是实现 PyQt5 中打开超链接的代码片段:
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.browser = QWebEngineView()
self.setCentralWidget(self.browser)
self.browser.setUrl(QUrl("https://www.example.com"))
self.browser.page().linkClicked.connect(self.open_link)
def open_link(self, url):
if url.host() != "www.example.com":
QDesktopServices.openUrl(url)
return
QWebEngineView.createWindow(self.browser, QWebEnginePage.WebWindowType)
在上述代码中,MainWindow 是一个继承自 QMainWindow 的类,它是我们的界面主窗口。在构造函数中,我们创建了一个 QWebEngineView 对象,设置了它的中心 widget,并在浏览器中打开了一个链接。此外,我们还建立了一个 linkClicked 信号的连接,该信号会在超链接被点击时被触发。
当 linkClicked 信号被触发时,我们检查链接的 host 是否为 www.example.com,如果不是,则使用 QDesktopServices.openUrl 方法在浏览器中打开链接;如果是,则使用 QWebEnginePage.WebWindowType,在新窗口中打开链接。这样就能在 PyQt5 中使用 target="_blank" 打开超链接了。
在本文中,我们介绍了如何在 PyQt5 中使用 target="_blank" 打开超链接。这种方法使用 QWebEngineView 和 QDesktopServices 模块实现,能够很好地解决在 PyQt5 中通过超链接打开新窗口的问题。