如何为QNetworkCookie实施qHash

时间:2018-12-27 20:01:37

标签: qt qt5 qhash

我正在尝试在QSet中收集QNetworkCookies。我创建了QSet QSet<QNetworkCookie> cookies 然后将Cookie插入 cookies.insert(cookie);然后编译器告诉我,QNetworkCookie没有qHash,所以我添加了一个内联方法,如下面的代码清单所示。编译器现在很高兴,但是从未调用该方法,并且该集合多次包含相同的cookie。有人可以指出我正确的方向吗?

#ifndef BROWSER_H
#define BROWSER_H

#include <QDebug>
#include <QMainWindow>
#include <QNetworkCookie>
#include <QObject>
#include <QWebEngineView>


class Browser : public QMainWindow
{
    Q_OBJECT
private:
    QWebEngineView *webEngine;
    QSet<QNetworkCookie> cookies;

public:
    explicit Browser(const QUrl &url);

protected slots:
    void finishLoading(bool);
    void handleCookieAdded(const QNetworkCookie &cookie);
};

inline uint qHash(const QNetworkCookie &key, uint seed)
{
    uint hash = qHash(key.domain(), seed) ^ qHash(key.name(), seed);
    qDebug() << "qHash " << key.domain() << " " << key.name() << " " << hash;
    return hash;
}

#endif // BROWSER_H

0 个答案:

没有答案