Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/141.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何重置QML WebView?_C++_Qt_Webview_Webkit_Qml - Fatal编程技术网

C++ 如何重置QML WebView?

C++ 如何重置QML WebView?,c++,qt,webview,webkit,qml,C++,Qt,Webview,Webkit,Qml,看起来。下面是最简单的代码: 启动此应用程序时,您将看到白色窗口。单击窗口,您将看到带有Twitter的浏览器。再次单击,浏览器将被隐藏和销毁 所以,请登录Twitter,然后单击第一个窗口破坏浏览器,然后单击第一个窗口再次创建浏览器。您将看到您离开时已登录。但我每次打开浏览器时都需要该浏览器,而不需要签名用户(即使用户选中了“记住我”复选框)。如何做到这一点?如何将浏览器重置为初始状态 以下是项目的主要部分: main.cpp #include <QApplication> #in

看起来。下面是最简单的代码:

启动此应用程序时,您将看到白色窗口。单击窗口,您将看到带有Twitter的浏览器。再次单击,浏览器将被隐藏和销毁

所以,请登录Twitter,然后单击第一个窗口破坏浏览器,然后单击第一个窗口再次创建浏览器。您将看到您离开时已登录。但我每次打开浏览器时都需要该浏览器,而不需要签名用户(即使用户选中了“记住我”复选框)。如何做到这一点?如何将浏览器重置为初始状态

以下是项目的主要部分:

main.cpp

#include <QApplication>
#include <QQuickView>

#include "container.h"

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    Container c;
    c.start();

    return a.exec();
}
#include "container.h"

#include <QDebug>
#include <QQuickItem>
#include <QQmlContext>

Container::Container(QObject *parent) :
    QObject(parent)
{
    mainFile = new QQuickView();

    browserExists = false;
}

Container::~Container()
{
    delete mainFile;
}

void Container::start()
{
    mainFile->setSource(QUrl("qrc:/main.qml"));

    connect(mainFile->rootObject(), SIGNAL(click()), this, SLOT(mainFileClicked()));

    mainFile->show();
}

void Container::mainFileClicked()
{
    if(!browserExists)
    {
        browser = new QQuickView();
        browser->setSource(QUrl("qrc:/browser.qml"));
        browser->rootContext()->setContextProperty("address", "http://twitter.com");

        browser->show();

        browserExists = true;
    }
    else
    {
        browser->hide();
        delete browser;

        browserExists = false;
    }
}
browser.qml

import QtQuick 2.0

Rectangle {
    width: 320
    height: 240

    signal click();

    MouseArea {
        anchors.fill: parent

        onClicked:
        {
            click()
        }
    }
}
import QtQuick 2.0
import QtWebKit 3.0
import QtWebKit.experimental 1.0

Item {
    width: 640
    height: 480

    signal closeWindow();

    WebView
    {
        anchors.fill: parent
        url: address
        experimental.preferences.privateBrowsingEnabled: true
    }
}

我认为,这个答案现在是不必要的,但我在我的Sailfish应用程序中嵌入的QML WebView也有同样的问题。私人浏览仍然不起作用,所以我发现了一个棘手的问题:从fs中删除缓存。 在旗鱼中,它存储在~/.local/share/app name/.QtWebKit中。所以,这个肮脏的解决方案使我有可能每次使用一个具有新状态的webview