📌  相关文章
📜  如何在 PyQt5 中使用 target="_blank" 打开超链接 - Python (1)

📅  最后修改于: 2023-12-03 15:24:19.334000             🧑  作者: Mango

如何在 PyQt5 中使用 target="_blank" 打开超链接 - Python

有时候在 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 中通过超链接打开新窗口的问题。