我正在尝试在 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