【问题标题】:Overridden slot shouldInterruptJavaScript() not being called未调用覆盖的插槽 shouldInterruptJavaScript()
【发布时间】:2016-03-01 15:51:32
【问题描述】:

我想抑制 Qt4.8.6 中 QtWebkit 中的 Javascript 超时警告。我创建了 QWebPage 的子类(如下所示)并使用 setPage 将其添加到 QWebView。但是,对话框仍然出现。在互联网上搜索,我发现了一些看起来像人们说我的代码正在运行的示例(例如reimplement the shouldInterruptJavaScript() in Qt (C++))。我一定是在做傻事。如果我覆盖像 javascriptConsoleMessage 这样的函数,就会调用 OK。

我的班级:

class NoDialogWebPage : public QWebPage
{
    Q_OBJECT

public:
    NoDialogWebPage(QObject * parent = 0) : QWebPage(parent) {}

public slots:
    bool shouldInterruptJavaScript()
    {
        return false;
    }
};

如何从 QWebView 的容器中调用它:

m_pWebView = new QWebView(this);
m_pWebPage = new NoDialogWebPage(m_pWebView);
m_pWebView->setPage(m_pWebPage);

【问题讨论】:

    标签: c++ qt


    【解决方案1】:

    Qt 需要它是私有插槽,而不是公共插槽。换个方式

    public slots:
    bool shouldInterruptJavaScript()
    

    private slots:
    bool shouldInterruptJavaScript()
    

    我刚刚用 Qt 4.8.4 测试了它,它就像一个魅力。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-18
      • 1970-01-01
      • 1970-01-01
      • 2021-12-07
      • 2023-04-07
      • 1970-01-01
      • 2016-04-14
      • 1970-01-01
      相关资源
      最近更新 更多