【问题标题】:How to show download progress in QWebEngine?如何在 QWebEngine 中显示下载进度?
【发布时间】:2016-08-16 13:10:40
【问题描述】:

在 QWebKit 我有这个代码:

QWebFrame * MainWindow::getQWebFrame(QString name) {
    if (getView() && getView()->page() && getView()->page()->mainFrame()) {
        QWebFrame * frameImLookingFor = getView()->page()->mainFrame();
            if (frameImLookingFor->frameName() == name)
                return frameImLookingFor;
        foreach(QWebFrame * frame, getView()->page()->mainFrame()->childFrames())
        {
            frameImLookingFor = frame;  at all
            if (frame->frameName() == name)
            {
                frameImLookingFor = frame;
                return frame;
            }
        }
        return frameImLookingFor;
    }
    return NULL;
}

这是它在 QWebEngine 中的样子:

QWebEnginePage * MainWindow::getQWebFrame(QString name) {
    if (getView()) {
        QWebEnginePage *frameImLookingFor = getView()->page();
        if (frameImLookingFor->objectName() == name)
            return frameImLookingFor;
        foreach(const QWebEnginePage * frame, getView()->page())
        {
            frameImLookingFor = frame;
            if (frame->objectName() == name)
            {
                frameImLookingFor = frame;
                return frame;
            }
        }
        return frameImLookingFor;
    }
        return NULL;
}

很遗憾,它不起作用。它显示了 foreach 的许多错误。例如“'i': is not a member of 'QForeachContainer”。无论如何要重写这段代码,所以它会像以前一样工作吗?

【问题讨论】:

  • 这个问题与显示任何进展有什么关系?你只是在枚举帧...
  • 好吧,在 QWebKit 中这个负责显示进度=\当我把所有东西都放在 cmets 中时,它什么也没显示,但正在下载

标签: c++ qt foreach download


【解决方案1】:

QWebEngine 不允许您从 C++ 迭代子帧。如果你想迭代它们,你必须运行一些 javascript。

你到底需要这些子帧做什么?

【讨论】:

  • 之前是这样工作的:如果电脑上没有文件,它会显示红色按钮。当你按下它时,它变成黄色(下载即将开始),然后它显示下载进度%。下载完成后,按钮变为绿色。现在它只是变成黄色,下载完成后,您必须重新加载页面才能使按钮变为绿色
  • 那么,页面本身有一些 javascript 来监控某些东西的下载进度?
  • 是的。 JS监控下载进度,QT这样显示
  • 您必须研究如何在 Qt Web Engine 中实现 js 和 C++ 之间的互操作。该 IIRC 有一些捆绑示例。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-19
相关资源
最近更新 更多