qt - 如何在 QWebView 中的 onClick 上获取链接 URL?

标签 qt onclick pyqt pyside qwebview

点击链接时如何获取链接的 URL?

如果我在 A 标记中有一个链接,则很简单:只需将 linkClicked(const QUrl&) 信号连接到特定槽即可。

但是,如果我的表格的单元格上有一个“onClick”事件(生成的html:“<td onClick=\”window.location.href='” + link_ + “';\“ ......blahblahblah”),它不起作用。为什么?

最佳答案

顾名思义,linkClicked仅当链接被激活时才会发出信号。

但是您可以通过重新实现acceptNavigationRequest来拦截所有导航请求:

class WebPage(QtWebKit.QWebPage):
    def __init__(self, parent=None):
        super(WebPage, self).__init__(parent)
        self.setLinkDelegationPolicy(QtWebKit.QWebPage.DelegateExternalLinks)

    def acceptNavigationRequest(self, frame, request, type):
        print('Navigation Request:', request.url())
        return False

...

webview.setPage(WebPage())

但请注意,所有导航请求都通过此方法传递,因此只要您的实现不打算处理该请求,就应返回 True

关于qt - 如何在 QWebView 中的 onClick 上获取链接 URL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27604858/

相关文章:

c++ - 即使 QFilterKey 匹配,QRenderPassFilter 也会隐藏平面网格

c++ - QLineEdit 处于焦点时无法设置快捷方式

c++ - QTableWidget Checkbox 获取状态和位置

matplotlib - 在 VisPy 中高效地绘制多条线

python - PyQt & unittest - 测试信号和槽

qt - Qt qDebug()在Windows Shell中不起作用

javascript - 未设置 onclick 事件

javascript - 如何使用 Javascript onclick 动态更改空 div 的高度并使用 onScroll 恢复

java - OnClickListener 无法解析为类型 (Eclipse)

qt - PyQt 更新 QLabel