gpt4 book ai didi

c++ - 在 Qt (C++) 中重新实现 shouldInterruptJavaScript()

转载 作者:行者123 更新时间:2023-11-30 02:05:54 24 4
gpt4 key购买 nike

根据Qt for QWebPage [Slot ShoudInteruptJavaScript]的帮助,位于here:

This function is called when a JavaScript program is running for a long period of time.

If the user wanted to stop the JavaScript the implementation should return true; otherwise false.

The default implementation executes the query using QMessageBox::information with QMessageBox::Yes and QMessageBox::No buttons.

Warning: Because of binary compatibility constraints, this function is not virtual. If you want to provide your own implementation in a QWebPage subclass, reimplement the shouldInterruptJavaScript() slot in your subclass instead. QtWebKit will dynamically detect the slot and call it.


我不希望 qt 在 javascript 长时间运行时显示消息。
那么,我该如何重新实现 ShoudInteruptJavaScript?
我应该在哪里创建它?
请给我看一个 sample 谢谢

最佳答案

您需要的所有信息都在文档中。

创建一个新的继承自QWebPage的自定义类,确保它是一个接收信号的Q_OBJECT。

class MyFunkyPage : public QWebPage {    Q_OBJECTpublic slots:    bool shouldInterruptJavaScript() {        QApplication::processEvents(QEventLoop::AllEvents, 42);        // Ignore the error        return false;    }};

将您的 QWebView 的页面设置为 QWebPage 的自定义子类。

setPage(new MyFunkyPage());

然后,当您的页面收到此信号时,它不会停止脚本的执行,也不会显示对话框。

关于c++ - 在 Qt (C++) 中重新实现 shouldInterruptJavaScript(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9284511/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com